Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Initialize / Finalize (https://www.delphipraxis.net/29637-initialize-finalize.html)

Phantom1 12. Sep 2004 12:51


Initialize / Finalize
 
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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz