Freemem

Declaration:
Procedure Freemem (Var P : pointer; Count : Longint);
Description:
Freemem releases the memory occupied by the pointer P, of size Count (in bytes), and returns it to the heap. P should point to the memory allocated to a dynamic variable.
Errors:
An error will occur when P doesn’t point to the heap.
See also:
Getmem (506), New (539), Dispose (482)

Listing: refex/ex28.pp


Program Example28;

{ Program to demonstrate the FreeMem and GetMem functions. }

Var P : Pointer;
    MM : Longint;

begin
  { Get memory for P }
  MM:=MemAvail;
  Writeln ('Memory available before GetMem : ',MemAvail);
  GetMem (P,80);
  MM:=MM-Memavail;
  Write   ('Memory available after GetMem  : ',MemAvail);
  Writeln (' or ',MM,' bytes less than before the call.');
  { fill it with spaces }
  FillChar (P^,80,' ');
  { Free the memory again }
  FreeMem (P,80);
  Writeln ('Memory available after FreeMem : ',MemAvail);
end.