Динамические массивы: особенности
Материал из Вики проекта 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.