Слайд 4
Для выделения памяти для динамического массива используется процедура
SetLength:
SetLength(My_Array,100);
После вызова этой процедуры будет выделена память для 100 элементов
массива, которые будут проиндексированы от 0 до 99
Слайд 5
Динамические массивы - это неявные указатели и обслуживаются
тем же самым механизмом, который используется для обработки длинных
строк (long strings).
Чтобы освободить память, занимаемую динамическим массивом, присвойте переменной, которая ссылается на массив, значение nil:
A:=nil.
Слайд 6
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
var A,B
: array of Integer;
1. begin {A[], B[] -
память не выделена}
2. setlength(A,2); { A[0,0], B[]}
3. B:=A; { A[0,0], B[0,0]}
4. A[0]:=2; A[1]:=4; { A[2,4], B[2,4]}
Writeln(A[0],' ',A[1]);
5. setlength(A,3); { A[2,4,0], B[2,4]}
Writeln(A[0],' ',A[1]);
6. A[0]:=2; A[1]:=4; A[2]:=5; B[0]:=1; { A[2,4,5], B[1,4]}
Writeln(A[0],' ',A[1],' ',A[2]);
7. A:=nil; { A[], B[1,4]}
Writeln(A[0],' ',A[1],' ',A[2]); end.