uses System.SysUtils;
var
PInt: PInteger;
PDouble: PDouble;
begin
//New allocates memory for one value
New(PInt);
PInt^ := 50;
New(PDouble);
PDouble^ := 3.14;
WriteLn('PInt^ is ', PInt^);
WriteLn('PDouble^ is ',
FloatToStr(PDouble^));
//Dispose releases it
Dispose(PInt);
Dispose(PDouble);
//GetMem takes the size in bytes
GetMem(PInt, SizeOf(Integer));
PInt^ := 7;
WriteLn('PInt^ is ', PInt^);
//PInt^ is 7
//GetMem is paired with FreeMem
FreeMem(PInt);
end.