objekte einer list löschen
-
Hallo,
ich habe eine list, welche mit Zeigern auf Objekte gefüllt ist.
Nun möchte ich die liste leeren.
Wie kann ich sicherstellen das auch die Objekte gelöscht werden?
Mit list.clear() werden offenbar nur die Zeiger in der Liste gelöscht, jedoch
nicht die Objekte auf die die Zeiger zeigen.Danke.
-
Das liegt daran, dass rohe Zeiger nunmal nur Beobachter sind. Wenn du Zeiger willst, die das Objekt, auf das sie zeigen, besitzen und entsprechend in jedem Fall korrekt freigeben, kannst du z.B. den shared_ptr aus Boost (www.boost.org) verwenden.
-
Hallo!
Ich denke wenn du vorher die Objekte mit einem leeren Objekt überschreibst, danach du dann die Zeiger löschst, dann sollte es dem gewünschtem Effekt entsprechen, oder?
Solche programme, die dir wirklich den Speicher löschen tun nichts anderes, weil eine andere Möglichkeit außer Strom aus, Strom an und dieser gibt es nicht!
Ciao
Norman-Timo
-
nicht vergessen: auch wenn der speicher mit unnützen daten gefüllt wird (zb lauter nullen) ist er trotzdem noch nicht freigegeben, d.h. dein programm belegt noch speicher, aber eben mit unnützen daten und das BS wird diesen speicher nicht an ein anderes programm vergeben