Thema: Delphi Initialize / Finalize

Einzelnen Beitrag anzeigen

Phantom1

Registriert seit: 20. Jun 2003
282 Beiträge
 
Delphi 10.4 Sydney
 
#1

Initialize / Finalize

  Alt 12. Sep 2004, 12:51
Ich probiere grad ein bisschen GetMem/Initialize und FreeMem/Finalize aus und wollte gerne mal wissen, ob:

1. der Speicher richtig wieder freigegeben wurde?
2. ich Initialize/Finalize richtig verwendet habe?

Code:
Type
  PRec1 = ^TRec1;
  TRec1 = packed record
    a: Byte;
    b: String;
  end;

  PRec2 = ^TRec2;
  TRec2 = packed record
    b: Integer;
    c: String;
  end;

procedure TForm1.Button1Click(Sender: TObject);
var p1, p2: Pointer;
begin
  GetMem(p1, SizeOf(TRec1) + SizeOf(TRec2));
  p2:=Pointer(Integer(p1) + SizeOf(TRec1));

  Initialize(PRec1(p1)^.b);
  Initialize(PRec2(p2)^.c);

  PRec1(p1)^.b:='Text1';
  PRec2(p2)^.c:='Text2';

  Finalize(PRec1(p1)^.b);
  Finalize(PRec2(p2)^.c);

  FreeMem(p1, SizeOf(TRec1) + SizeOf(TRec2));
end;
  Mit Zitat antworten Zitat