Autor Beitrag
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.02.05 10:46 
Hallo,
wenn ich ein Objekt so erzeuge:
ausblenden Delphi-Quelltext
1:
2:
 New(PMyObject);
 PMyObject^ := TMyObject.Create;

und dieses dann mit
ausblenden Delphi-Quelltext
1:
 PMyObject^.Free;					

freigebe, kann ich doch auf das
ausblenden Delphi-Quelltext
1:
 Dispose(PMyObject)					

verzichten oder?

Danke im Vorraus!
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Sa 12.02.05 12:19 
Nein, mit New erzeugst du genug Platz für eine Objektreferenz, anschließend erzeugst du das Objekt. Mit Free gibst du nur den Speicher für das Objekt wieder frei, der Speicher für die Objektreferenz ist immer noch allokiert und muss mit Dipose freigegeben werden.

Aber du solltest die Gedanken über das Ganze machen, du hast da nämlich einen Pointer auf einen Pointer, also ein bisschen doppelt gemoppelt. Eigentlich braucht man in Pascal keine Pointer auf Objekte.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert