Zitat von
teebee:
Zitat von
skyphab:
Mit dem Clear werden doch alle Instanzen, die in dieser Objektliste waren, freigesetzt und der Speicher freigegeben? Oder nicht? Es ist zum heulen
Ja, wenn OwnsObject der ObjectList auf True steht, was standardmäßig der Fall ist, und das jeweilige Objekt sich selber sauber freigeben kann, also der Destruktor ordentlich programmiert ist.
Übrigens ist
MemProof ein gutes Tool, um seine Programme auf Speicherlecks zu prüfen.
Gruß, teebee
MemProof werde ich mal testen, danke!
Das mit den Destruktoren ist mir noch ein kleines Rätsel. Was muss ich denn behandeln, im Destructor? Muss ich irgendwelche Variablen zurücksetzen, etc.? Oder nur mit diesem Objekt erzeugte Objekte freigeben?
Edit: Also wenn ich das Ganze mit MemProof laufen lasse, erhöht sich die Anzahl der Pointer und die Größe, um dann kurz danach, nach Freigeben der Objekte wieder auf den Urpsrungswert zurückzufallen (Wenn die eingelesenen Dateien sich nicht ändern)
Wenn ich im Programm in einem Destructor eine Objektliste nicht freigebe, erhöht sich die Anzahl der Pointer immer mehr.
Also habe ich keine Speicherleaks?
Würde mich freuen, weil das Verwenden von Sharemem scheint mir nicht 100% treffend genug zu sein (die besagten Schwankungen). Vielen Dank für den Link zum Programm!
Edit: Ich habe einen Haufen Meldungen bei 'Resurces Details':
"GetMem allocates memory from the
RTL memory manager and returns a pointer. The returned pointer must be freed with FreeMem"
Ich arbeite unter anderem mit einem dynamischen Array. Hat das was damit zu tun?