Mam tablicę dynamiczną:
var
Arr: array of array of byte;
i procedurę:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j: byte;
begin
for i := 1 to 5 do
begin
SetLength(Arr,i); //-1
for j := 0 to 5 do
begin
ShowMessage('i= '+IntToStr(i)); //(kontrola w fazie projektowania) -2
SetLength(Arr[i],4); //-3
end;
end;
end;
Wydaje się poprawna, tymczasem już przy pierwszym obrocie pętli w lini //3 mam Acces Violation (00408255)
Wydaje mi się dziwne że po zmianie kodu w lini nr.3 na "SetLength(Arr[i-1],4);" obie pętle prawidłowo wykonują się do końca
Nie mogę jednak zgodzić się na taki trik ze względu na późniejsze komplikacje kodu (którego tutaj nie ma sensu przytaczać)
Czy ktoś z was może mi wyjaśnić przyczynę błędu?? :)