-
Data: 2011-02-10 01:08:13
Temat: Re: Android
Od: Jacek Radzikowski <j...@s...die.die.die.piranet.org> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 02/09/2011 01:59 PM, Lelek@ wrote:
No to chyba się wyjasniło
> public void dupa() {
> byte buf[] = new byte[256];
Tutaj buf jest referencją do twojej tablicy...
> buf = FromEditText.getBytes("UTF-8");
Ale tutaj już buf jest referencją do obiektu zwróconego przez
FromEditText.getBytes(). Wskazanie do tablicy, która zaalokowałeś
zostało stracone i przydzieloną pamięcią zajmie się przy najbliższej
okazji garbage collector.
Powyższy kod jest równoważny takiej linijce:
byte buf[] = FromEditText.getBytes("UTF-8");
Ja bym twój kod przepisał do takiej postaci:
byte buf[] = FromEditText.getBytes("UTF-8");
int bfx[] = nil;
if(buf.length>0)
{
bfx[] = new int[buf.length];
for (i = 0; i < buf.length; i++)
{
//elementy buf mają po 8 bitów, więc maskowanie 0xff
//jest trochę bez sensu
bfx[i] = ((int)buf[i] & 0xFF);
}
}
if(bfx!=nil)
{
//robimy cos z bfx
}
Bardzo ważne jest alokowanie pamięci na bfx po odczytaniu zawartości
buf. Przy alokowaniu bfx o stałej długości, dopóki FromEditText.getBytes
zwróci tablicę mniej niż 256 bajtów, program będzie działał poprawnie.
Ale jeśli buf będzie dłuższe niż długość bfx, program wywali się z
błędem dostępu do pamięci przy próbie zapisu pierwszego elementu, który
się nie mieści w bfx.
BTW. próbowałeś przechwytywać wyjątki?
pzdr.
j.
Następne wpisy z tego wątku
- 10.02.11 02:13 Lelek@
- 10.02.11 03:40 Jacek Radzikowski
- 10.02.11 06:59 Lelek@
- 10.02.11 07:45 Jacek Radzikowski
- 10.02.11 13:41 Pszemol
- 11.02.11 13:01 Shaman
- 11.02.11 13:06 J.F.
- 11.02.11 13:27 Shaman
- 11.02.11 13:39 J.F.
- 11.02.11 14:04 Shaman
- 11.02.11 14:22 MoonWolf
- 11.02.11 14:32 J.F.
- 11.02.11 14:33 Michoo
- 11.02.11 18:48 Lelek@
- 11.02.11 19:10 Jacek Radzikowski
Najnowsze wątki z tej grupy
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
Najnowsze wątki
- 2025-07-08 Router LTE z możliwością zmian MTU
- 2025-07-08 Re: Pożar w Ząbkach a polscy dyletanci
- 2025-07-08 Trójmiasto => Head of Social Media <=
- 2025-07-08 Warszawa => MENA New Business Manager <=
- 2025-07-08 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-08 Warszawa => Customer Service with Spanish + translation <=
- 2025-07-08 Warszawa => Senior Account Manager <=
- 2025-07-08 Parkometry bez podstawy prawnej
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 TV z Play (dawniej UPC) -- potrzebny dekoder?
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 mija rok jeżdzenia po lewej
- 2025-07-06 Elektryki jednak są NIEBEZPIECZNE
- 2025-07-08 Fajny film widziałem...