Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Dispose mit untypisiertem Pointer

  Alt 14. Sep 2012, 01:32
Dispose weiß bei einem untypisiertem Zeiger nicht wie groß der Record ist.
Es gibt einfach nur den kompletten Speicherblock frei und fertig.

Wenn sich in diesem Record Speicherblock aber referenzierte Variablen befanden, dann werden diese nicht freigegeben, denn ohne entsprechende TypeInfo (welche es bei einem typisiertem Zeiger bekommt) weiß es ja nichts davon.

dynamische Arrays, String, Interfaces und Co., welche sich in dem Record befinden könnten, werden also nicht mit freigegeben.
Zitat:
Delphi-Quellcode:
  TRecord = record
    Value: string;
  end;
Der String bliebe somit als Speicherleck zurück.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat