Thema: Delphi Array korrekt freigeben

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.776 Beiträge
 
Delphi 12 Athens
 
#22

AW: Array korrekt freigeben

  Alt Heute, 09:51
Dispose darf man dann aber auch nur einmal aufrufen?
Per se ja.

Delphi-Quellcode:
procedure Dispose(P);
begin
  Finalize(P);
  FreeMem(P);
end;
Leider ist hier kein P := nil; enthalten, wie beim FreeAndNil,
aber wenn du es selbst danach machst, dann wäre ein Mehrfachaufruf OK.
Delphi-Quellcode:
New(P);
...
Dispose(P);
P := nil;

Und das Finalize selbst.
Ich bin mir nicht sicher, ob es "vollständig" den speicher nullt (hab das Gefühl, für einige Typen wird das nicht gemacht),
aber wenn nicht, dann würde hier ein ZeroMemory/FillChar nach dem Finalize helfen, damit es mehrmals aufgerufen werden kann.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (Heute um 09:54 Uhr)
  Mit Zitat antworten Zitat