Bonjour
J'essaye de comprendre le fonctionnement du debugage de la CRT:
J'ai fait un programme simple:
Quand je le lance, j'ai une sortie du style:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <crtdbg.h> #include <iostream> using namespace std; #ifndef _DEBUG #define _DEBUG #endif #define _CRTDBG_MAP_ALLOC int main(){ _CrtMemState *state=new _CrtMemState(); bool sd=_CrtDumpMemoryLeaks(); delete state; }
Detected memory leaks!
Dumping objects ->
{53} normal block at 0x00A31760, 52 bytes long.
Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Object dump complete.
En revanche, quand je fait ce programme:
La tout est ok.Code:
1
2
3
4 int main(){ bool sd=_CrtDumpMemoryLeaks(); }
Or, pour moi, dans mon premier programme il n'y a pas de mémory leaks.
Car la zone mémoire allouée par new est bien pointée par state. Je ne vois pas ce qu'il veut dire par memory leaks detected. Si j'avais fait ca:
là oui,il y aurait eu une memory leaks.Code:new _CrtMemState();
Merci