Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Initialisiert New() den speicher mit #0?

  Alt 16. Jun 2006, 19:31
wenn du das am Anfang machst ... nichts.

Wenn du es machst, nachdem z.B. einem String Daten zugewiesen wurden, dann hast du ein MemoryLeak ... der Stringzeiger wäre dann NIL (=Leersting), aber die alten Daten würden noch existieren.


Also wenn du eh alles initialisieren willst, dann geht es am schnellsten, wenn du per GetMem den Speicher holst und dann mit ZeroMem über alles drübergehst.

Initialize geht zwar auch ZeroMem-artig über den "Record", aber es setzt nur da auf #0, wo z.B. ein String steht ... der Rest bleibt unberührt.


Also wenn du per erst New deinen Speicher allocierst und dann gleich per ZeroMem drübergehst passiert nichts, außer daß du Speicher doppelt initialisiert (auf #0 gesetzt) hast ... demnach sinnloser Weise Initialize aufgerufen wurde.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat