with Ada.Unchecked_Deallocation; procedure HP is type Rec_Type is record X : Integer; Y : Character; Z : ...; end record; type Rec_Ptr_Type is access Rec_Type; -------------------------------------------------- procedure Free is new Ada.Unchecked_Deallocation(Rec_Type, Rec_Ptr_Type); -------------------------------------------------- P3, P4 : Rec_Ptr_Type; begin P3 := null; P3 := new Rec_Type; P3.all.X := 4; P3.all.Y := 'a'; P3.all.Z := (A => 2, B => "KUL"); P3.all.Z.A := 2; P3.X := 4; P3.Y := 'a'; P3.Z := (A => 2, B => "KUL"); P3.Z.A := 2; Put(P3.all.X); P4 := P3; Free(P3); end HP;