Tablice dynamiczne

0

Hej,

Czy ktoś zna może powód dla którego użycie dynamicznych tablic rekordów w pętlach (zresztą nie tylko) powoduje błąd access violation? Może coś złego w deklaracji?

type
   procData = record
      name : string;
      id : integer;
      handle : THandle;
   end;
   procList = array of procData;

(...)

var
   (...)
   processList : procList;
   (...)

(...)
for i := 0 to sizeOf(processList) do begin
   with processList[i] do begin {wyczysc rekord}
      name := '';
      id := 0;
      handle := 0;
   end;
end;

Itd. Kod nie wygląda dokładnie tak, pisałem go z głowy. :P W każdym razie są tu wszystkie istotne szczegóły. Nie rozumiem, dlaczego powoduje to access violation.

Z góry dzięki,

Rookie One

0

bo sizeof podaje wartosc w bajtach, zeby otrzymac dlugosc tablicy uzyj Length, ew High - zwroci najwyzszy element

//BTW powiedz, jaki jest sens w uzywaniu takich porabanych podpisow? [glowa]
//SigX, po prostu zajmuje duzo miejsca ... i w ogole jest beznadziejne, nie uraz sie, ale takie jest moje zdanie


Po prostu wyrazilem swoja opinie, nic osobistego

Mówisz to wszystkim, co go używają?

Tak mowie to wszystkim posiadajacym takie cOS i zamierzajacym posiadac takie cOS.

0

[glowa] Co według ciebie jest porąbane? Cytat czy SigX? BTW, dzięki za podpowiedz, spróbuję. :p

-----EDIT-----

Ja nie jestem jedynym używającym SigXa na tym forum, zresztą stąd się o nim dowiedziałem. :p Mówisz to wszystkim, <ort>co </ort>go używają?

0

Zamiast

for i := 0 to sizeOf(processList) do begin

użyj

for i := 0 to Length(processList)-1 do begin

lub ewentualnie

for i := 0 to High(processList) do begin

1 użytkowników online, w tym zalogowanych: 0, gości: 1