NEW(I4);

I4^:=4; (*1*)

DISРОSЕ (I2);{освобождается второе размещение}

NEW (I);{память нужного размера (в данном случае два байта) выделяется на первом свободном месте от начала кучи, достаточном для размещения данной переменной; в этом примере - это участок, который занимала переменная I2^, ее адрес остался в указателе I2}

I^:=5; (*2*)

DISPOSE(I3);{освобождается третье размещение}

NEW(R);{память под переменную типа REALвыделяется в вершине кучи, так как размер дырки с адресом I3(2 байта) мал для размещения переменной типа REAL, для которой необходимо 6 байт }

R^:=6; (*3*)

WRITELN (R^);{ ВЫВОД: 6.0000000000E+00}