Динамические массивы: особенности
Материал из Вики проекта PascalABC.NET
Данный пример иллюстрирует особенности работы с динамическими массивами.
procedure Print(a: array of integer); begin foreach v: integer in a do Write(v, ' '); Writeln; end; var a: array of integer; begin a := new integer[10]; for var i:=0 to a.Length-1 do a[i] := PABCSystem.Random(100); Print(a); SetLength(a,12); // Перевыделение памяти. Старые данные сохраняются Print(a); System.Array.Sort(a); Print(a); System.Array.Reverse(a); Print(a); end.
Следует обратить внимание, что для получения длины массива используется a.Length. Кроме этого, память под массив может быть выделена не только процедурой SetLength, но и операцией new.
Наконец, параметр подпрограммы a: array of integer представляет собой именно динамический массив, а не открытый массив, как в Delphi.
