-
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
- antena gsm - kabel - antena gsm
- PID - jeszcze raz
- Zlacze w mikrofonie z lat 80-tych
- Żywica żółknie od UV i wody :(
- Zawory termostatyczne
- Schemat automatyki
- Teoretyczne zagadnienie - ogrzewanie budynku
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
- Skąd diody LED 1,5V?
- Apollo Comm
Najnowsze wątki
- 2026-01-23 Warszawa => Software Development Team Leader (C#/.Net) <=
- 2026-01-23 Toruń => Sales Engineer (Database background) <=
- 2026-01-23 Toruń => Preseles Inżynier (background baz danych) <=
- 2026-01-23 antena gsm - kabel - antena gsm
- 2026-01-22 Złomnik ty pisowska SZMATO! ;-)
- 2026-01-22 PID - jeszcze raz
- 2026-01-22 konkret24.tvn24.pl "gwarantuje": za SAMO wylanie gnojówki pod domem tusk-ministra aresztu nie będzie! ;-)
- 2026-01-22 Prawo na wesoło: nakaz rozbiórki "dwóch przyczep samochodowych" jako budynku ;-)
- 2026-01-22 Airtagi
- 2026-01-22 Warszawa => Full Stack Developer (Go/React) <=
- 2026-01-22 Warszawa => Senior Account Manager <=
- 2026-01-21 Nissan Leaf II 40kWh - degradacja baterii, SOH, uszkodzona bateria
- 2026-01-21 Fwd: zarzuty dla kulsonów
- 2026-01-21 Koniec Eldorado :)
- 2026-01-21 Warszawa => Senior Account Manager <=




Fakturzystka, fakturzysta