- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
var A:array of record
Foo: integer;
end;
function NewNode: integer;
begin
SetLength(A, Length(A)+1);
Result := High(A);
// возвращаем не указатель на последний элемент,
// а номер последнего элемента, потому что массив динамический и указатели нестабильны
end;
procedure DoSmth(var i: integer);
var
n1,n2: integer;
begin
n1 := NewNode;
n2 := NewNode;
// дальше что-то проделывааем над A[n1] и A[n2]
i := A[n1].Foo + A[n2].Foo;
end;
var
NewIndex: integer;
begin
NewIndex := NewNode;
DoSmth(A[NewIndex].Foo);
end.