Savoir si l'on fait des fuites mémoires[vc++]

Contenu du snippet

Les fuites mémoires sont redoutées par tous les développeurs
Voici un truc pour que Visual C++ nous les révèle
... même en projet console

Source / Exemple :


//voici une fonction qui fait des fuites à chaque invocation :
void f(){ int * p = new int[1000];}

en effet, le pointeur qui pourrait servir à faire le delete[] est systématiquement perdu .
A chaque invocation de la méthode, on perd donc 1000*sizeof(int) = 4000 octets du tas.
Si cette fonction est souvent employée, le tas va finir par se tarir et le système par crasher

Dans le cas suivant par exemple 
int main()
{
 for (int i=0; i<1000 ; ++i) f();
}

La question est comment être averti par le compilateur ?
Il existe un truc simple sous Visual C++
ajouter le ligne suivante en tête de ficher:
<#include afx.h>
puis passer en mode utilisation des MFC
menu Projet/Settings/onglet general / use MFC
c'est tout ! ne changez pas plus votre code
Lorsque vous lancerez le débogueur avec F5 (et non pas (CTRL+F5)
vous verrez vos fuites (s'il y en a) dans la fenêtre debug

corriger alors la (les) fuite(s) : dans notre cas :
void f(){ int * p = new int[1000]; delete[]p; }
y a pu de fuite !

Conclusion :


ajout d'une copie d'écran

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.