Visual C++ trouvé des fuites de mémoire dans mon code, donc j'amenuisé vers le bas comme cas de test le plus simple que je pouvais et a ceci:chaîne provoque une fuite de mémoire?
#define _CRTDBG_MAP_ALLOC // required
#include <stdlib.h> // to enable MSVC++
#include <crtdbg.h> // memory leak detection
#include <string>
using namespace std;
int main() {
string foo;
_CrtDumpMemoryLeaks();
return 0;
}
Sortie:
Detected memory leaks! Dumping objects -> {130} normal block at 0x008748A8, 8 bytes long. Data: B4 F9 44 00 00 00 00 00 Object dump complete.
Si je commente sur « string foo " ça ne détecte rien.
Dois-je désengager foo d'une façon ou d'une autre?
Ce qui est évidemment impossible si vous avez des objets basés sur une pile! '_CrtDumpMemoryLeaks()' provient de la bibliothèque d'exécution * C *; il ne prévoyait pas de destructeurs ... –
@Oli: Impossible comment? sharptooth a démontré comment le faire. –
Maintenant, je me sens bête de perdre autant de temps à essayer de comprendre ce que je faisais de mal et de demander ce qui s'est avéré être une question stupide. Merci pour l'explication. – zi3guw