Var
P1,p2,p3,p:^integer;
.
.
New(p1);
Mark(p);
New(p2);
New(p3);
Release(p);
(этот пример рассмотрен ниже).
Пример 2:
Var
Po,p1,p2,p3:^byte;
Pp:pointer;
.{1}
.
New(p0);
New(p1); {2}
New(p2);
Dispose(p1);
Mark(pp);{3}
Если далее выполнить new(p3) то выделиться блок памяти в области связанной с p1, если же p3:^integer то оператор new(p3) привел бы к тому что блок выделиться с адреса HeapPtr.
Процедура освобождения памяти
Release(<ссылка или указатель>);
Продолжим пример1.
Данная процедура Release переместит указатель HeapPtr по адресу P т.е. все находящиеся выше адреса Р будет считаться свободным.