[next] [prev] [prev-tail] [tail] [up]

#### Dispose

Declaration:
  Procedure Dispose (P : pointer);
  Procedure Dispose (P : Typed Pointer; Des : Procedure);
Description:
  The first form Dispose releases the memory allocated with a call to New (539). 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:
  New (539), Getmem (506), Freemem (504)

Listing: refex/ex16.pp

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.

[next] [prev] [prev-tail] [front] [up]