Прямоугольные динамические массивы
Материал из Вики проекта PascalABC.NET
Здесь иллюстрируется, как работать с прямоугольными динамическими массивами.
procedure Print(a: array [,] of integer); begin for var i := 0 to Length(a,0) - 1 do begin for var j := 0 to Length(a,1) - 1 do write(a[i,j]: 3); writeln; end; end; var a: array [,] of integer; begin a := new integer[5,7]; for var i:=0 to a.GetLength(0)-1 do for var j:=0 to a.GetLength(1)-1 do a[i,j] := Random(100); Print(a); writeln; SetLength(a,6,8); // Перевыделение памяти. Старые данные сохраняются Print(a); end.
Отметим, что new выделяет память и заполняет ее нулями, а SetLength может также перевыделять память с сохранением старого содержимого. Отметим также, что для доступа к размеру п i-той размерности используется либо a.GetLength(i), либо Length(a,i).
