DETECTION DES MEMORY LEAKS [VSTUDIO/WIN32]

cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 - 1 févr. 2004 à 16:03
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008 - 1 févr. 2004 à 17:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19998-detection-des-memory-leaks-vstudio-win32

Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
1 févr. 2004 à 17:50
Oui mais bon en meme temps ces trois fonctions ne sont pas executées en mode release alors pourquoi s embeter ?
de plus j aurais mis #ifdef DEBUG && WIN32 histoire d eliminer plus de cas ...
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
1 févr. 2004 à 17:08
Je pense qu'il serait mieux d'exclure tout ce code d'une compilation en mode Release non ?

#ifdef DEBUG
#include <crtdbg.h>
#endif
#include <stdio.h>

#ifdef DEBUG
void DetectMemLeaks()
{
_CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF|_CRTDBG_ALLOC_MEM_DF);
_CrtSetReportMode(_CRT_ASSERT,_CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_ASSERT,_CRTDBG_FILE_STDERR);
}
#endif

int main ()
{
#ifdef DEBUG
// Initialisation la detection
DetectMemLeaks();
#endif

char* str = new char[50]; // alloue de la mémoire
//delete[] str; // ici la memoire n est pas desalloue,
//une erreur apparaitra dans le panneau de debuggeur
// decommentez pour voir l erreur disparaitre

return 1;
}
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
1 févr. 2004 à 16:03
Super
Court efficace
bref bien
Rejoignez-nous