Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Dyn. array wieder freigaben

  Alt 14. Mai 2005, 00:31
Zitat von Muetze1:
1. StackFrames sind default mässig aus
Das interessiert die Compiler-Magic nicht. Die richtet dir einen try/finally-Block ein um ein dynamisches Array zu referenzieren und zu dereferenzieren bzw. freizugeben.

Zitat:
2. Das Initialize() und Finalize() bringt bei meinm Haupt-Delphi 5 nachweisbar weniger Speicherlecks
Initialize und Finalize werden nur benötigt, wenn man sich um die Speicherreservierung und -freigabe selbst kümmert. Also mit GetMem/AllocMem/ReallocMem und FreeMem arbeitet anstatt mit SetLength() (dyn. Array, String) und New/Dispose (records).

Zitat:
und vor allem wird dadurch der Speicher wieder freigegeben.
Delphi 5 hatte einige Bugs, aber der wäre mir neu. Bei falscher Anwendung von Initialize und Finalize kann es zu Schutzverletzungen kommen, da die beiden Funktionen die Speicher bearbeiten (mit Nullenfüllen, gültige Daten voraussetzen) und dyn. Arrays und Strings refernzengezählt werden.
  Mit Zitat antworten Zitat