Android

byte buf[] = new byte[256]; buf = FromEditText.getBytes("UTF-8");

AVR ? No dobra - buf zainicjowal dwa razy, zawartosc tablicy tylko raz.

Akurat niezainicjowana zawartosc tablicy nie powinna tu bruzdzic .. chyba ze jakas kontrola przed nieuprawnionym czytaniem pamieci.

J.

Reply to
J.F.
Loading thread data ...

Dnia 11-02-2011 o 14:39:08 J.F. <jfox snipped-for-privacy@poczta.onet.pl> napisał(a):

haha.. ostatnio dużo czytam o AVR i zamiast Android zobaczyłem Arduino :)

Sięgnąłem po książkę "Thinking in Java" - a nie robiłem tego od wielu miesięcy :) Kurcze sprawa wydaje się jeszcze dziwniejsza, bo faktycznie wywołanie byte buf[] = new byte[256]; powinno zainicjować i wyzerować tablicę. No ale książka traktuje o referencyjnej Javie Sun'a. Widać Google dla swojej maszyny wirtualnej po swojemu optymalizuje bajtkod. To jest dla mnie jedyne wytłumaczenie.

Reply to
Shaman

Shaman denied rebel lies:

Czekaj bo się już zgubiłem w tym wątku. Wydaewało mi się że tutaj: <iiup2o$em2$ snipped-for-privacy@opal.futuro.pl> Lelek sobie sam odpowiedział na swoje pytanie dlaczego mu się wywala?

Reply to
MoonWolf

Nie widziales tlumaczenia ? Druga linia wywala pierwsza inicjacje, a wstawia do obiektu zaalokowanego i zwroconego przez metode. W tym przypadku pewnie zwrocilo null i stad caly jest ambaras.

A tak swoja droga - to co potem zwraca .length od null ? zero czy juz wyjatek ?

J.

Reply to
J.F.

W dniu 11.02.2011 15:32, J.F. pisze:

Wyjątek.

Reply to
Michoo

Przenoszenie złych nawyków z C do Javy to bardzo złe podejście. Java jest bardzo restrykcyjna jeśli chodzi o niedozwolone operacje. Dobrze napisanym programom to nie przeszkadza, a znakomicie ułatwia znalezienie błędów.

Sprawdziłeś co się pojawia w logach? Wrzuć na grupę kawałek kody z try (i po nim), to może ktoś będzie w stanie Ci pomóc.

pzdr. j.

Reply to
Jacek Radzikowski

wskaznik, wskaznik, ale na Obiekt, i to juz moze bardzo roznie dzialac.

J.

Reply to
J.F.

Wielki błąd. Obiektowość to jeden z najpotężniejszych mechanizmów jakie java oferuje. Podobieństwo z C++ pomaga zacząć, ale trzeba pamiętać że tak na prawdę to jest zupełnie inny język, i przenoszenie na siłę nawyków z C++ jest proszeniem o kłopoty. Ale na to żeby dobrze poznać język (jakikolwiek) potrzeba sporo czasu i pracy. Na swoim przykładzie mogę powiedzieć, że na to żeby zacząć pisać w jakimś języku wystarczy kilka dni-tydzień na oswojenie się ze składnia. Ale dopiero dopiero po jakiś 3-4 miesiącach codziennego tłuczenia kodu mogę się przed sobą przyznać że w miarę nieźle znam język i otoczkę programistyczną. A co do narzekania na javę - java nie jest językiem idealnym i ma sporo wad. Ale większość tych, którzy uważają że java to shit albo jej nie znają, albo chcą na siłę przenosić nawyki z innego języka (c/c++/bascoma/assemblera/łotewera).

pzdr. j.

Reply to
Jacek Radzikowski

Najważniejsze to mieć motywację do pracy :)

Proponowałbym jak najszybciej się z nimi zaprzyjaźnić. Pomoże Ci to lepiej pisać aplikacje androidowe, ale też inaczej będziesz podchodzić do projektowania i pisania aplikacji w innych językach.

Asemblera też po drodze zaliczyłem. W pewnym momencie byłem w stanie tłumaczyć programy w assemblerze z80 na język maszynowy z minimalną pomocą tablic :) Dobra znajomość wielu różnych języków programowania pomaga nabrać dystansu i inaczej spojrzeć na projekt aplikacji nad którą się pracuje. Często dzięki temu można zawczasu zauważyć dość nieoczywiste pułapki projektowe.

pzdr. j.

Reply to
Jacek Radzikowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.