Hi
Wenn man ja mit new erstellt muss man es ja auch wieder mit delete löschen das es nicht zu speicher leaks kommt. Wie finde ich heraus ob ich immer alles wieder sauber gelöscht habe?
Hi
Wenn man ja mit new erstellt muss man es ja auch wieder mit delete löschen das es nicht zu speicher leaks kommt. Wie finde ich heraus ob ich immer alles wieder sauber gelöscht habe?
Unter Linux: valgrind
Die empfohlene Methode: delete-Aufrufe sollten stets in Destruktoren vorgenommen werden (steht so schon bei Scott Meyers). Erfordert die Programmlogik eine zwischenzeitliche Neuerstellung von Objekten, geht das natürlich nicht, entweder du machst delete und dann new oder aber einen expliziten Destruktoraufruf gefolgt vom placement-new-Operator, das ist schneller. (ptr->~Typ(); new(ptr) Typ(parameters);) Meist reicht es zu sagen, dass ein Objekt ein anderes über einen Pointer "besitzt", dementsprechend muss es dieses im Destruktor bzw. wenn es durch ein neues ersetzt wird löschen.
Du solltest Valgrind nutzen, wenn es bei dir jedoch nicht geht, kannst du dein Programm notfalls hiermit prüfen.
gibts das auch als extension für ms vs 2008 oder einfach für windows?
Google sagt: Ergebnisse 1 - 10 von ungefähr 985.000 für windows memory leak detection
evt habt ihr ja schon einige erfahrungen, da kann mir google nicht weiterhelfen
Wenn du unbedingt da kleben bleiben willst: Ich habe dir einen Link geschickt, der geht auch unter Windows.