Thema: Delphi Array korrekt freigeben

Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.076 Beiträge
 
Delphi 12 Athens
 
#18

AW: Array korrekt freigeben

  Alt Heute, 09:33
Delphi-Quellcode:
  { aber hier ist eine Finalisierung für MyPtr^ notwendig, andernfalls bleibt der string bestehen }
// Finalize(MyPtr^);
Holy shit.
Ich habe nie New+Dispose benutzt. Und ich dachte immer longstrings kümmern sich selbst um sich und da muss ich mir keine sorgen machen.
Also für Records mit fester größe immer new und dispose nutzen....hm

und New+Dispose wie eine lokale managed Variable, bzw. wie Create und Destroy zum Objekt-Feld.
Dispose darf man dann aber auch nur einmal aufrufen?


ich habe im Beispiel nur alle 3 Varianten aufgeführt:

Code:
Setlength(AArray,0);
Finalize(AArray);
AArray:=nil;
um 'sicher' zu gehen, normalerweise nutze ich nur Setlength(AArray,0);

Die Frage ist aber immer noch, warum es mir von FastMM5 als Leak angezeigt wird.
Vielleicht brauchst du so eine Demo mit Log des Refcount wie Uwe Raabe sie für die verschiedenen New+Dispose, GetMem+Freemem und Declare + :=nil gemacht hat
Nur eben für diesen dreifach free.
Andreas
Nobody goes there anymore. It's too crowded!
  Mit Zitat antworten Zitat