Zitat von
Mavarik:
Hallo!
Ich lese öffter, das es in delphi möglich ist einfach einen Speicher wieder frei zu geben, indem man dem Zeiger auf NIL setzt.
Die C-Jungs müssen scheinbar noch manuell den Free aufrufen?! Bzw. release.
Ich rede nicht von .Net wo die Speicher-Abfallbeseitigung das erledigt
Habe ich da etwas verpasst? Oder wie funktioniert das?
Frank
Hallo,
wenn das betreffende Objekt ein Interface implementiert (also z.B. eine Instanz eines
COM-Servers ist) dann macht Delphi eine Referenzzählung. Das heisst, daß das Objekt freigegeben wird wenn die letzte Referenz auf NIL gesetzt wird, also von der Wirkung her wie bei dot-net-Objekten.
Bei "normalen" Objekten trifft das nicht zu. Diese müssen explizit freigegeben werden.
Ciao,
Ralf