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}