Einzelnen Beitrag anzeigen

skyphab

Registriert seit: 16. Apr 2004
17 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Speicherverwaltung und .Free

  Alt 20. Jul 2004, 16:09
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?
  Mit Zitat antworten Zitat