Dispose procedure
Free dynamically allocated memory.
Declaration
procedure &Dispose(P: Pointer)Description
The first form Dispose releases the memory allocated with a call to
New. The pointer P must be typed. The released memory is
returned to the heap.
The second form of Dispose accepts as a first parameter a pointer
to an object type, and as a second parameter the name of a destructor
of this object. The destructor will be called, and the memory allocated
for the object will be freed.
Errors
An runtime error will occur if the pointer doesn't point to a location in the heap.
See also
Example: ex16
Program Example16;
{ Program to demonstrate the Dispose and New functions. }
Type SS = String[20];
AnObj = Object
I : integer;
Constructor Init;
Destructor Done;
end;
Var
P : ^SS;
T : ^AnObj;
Constructor Anobj.Init;
begin
Writeln ('Initializing an instance of AnObj !');
end;
Destructor AnObj.Done;
begin
Writeln ('Destroying an instance of AnObj !');
end;
begin
New (P);
P^:='Hello, World !';
Dispose (P);
{ P is undefined from here on !}
New(T,Init);
T^.i:=0;
Dispose (T,Done);
end.An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.
