L'une des méthodes les plus anciennes consiste à remplacer les opérateurs nouveaux et supprimés (en supposant que toutes les allocations de tas soient effectuées via new). Prnt outs placés stratigically à l'intérieur de vos nouveaux opérateurs de suppression et de suppression vous permettent de vous assurer que vous avez nettoyé avant de quitter. Mais cela peut être un peu difficile; vous seriez tenté de surcharger et de supprimer dans la portée globale. Mais cela pourrait poser d'autres bogues non expliqués (bien sûr, vous n'utiliser que des opérateurs surchargés en mode débogage, d'accord) Gardez-le dans votre portée de classe.
Une autre manière intelligente consiste à utiliser auto_ptr. Le pointeur que vous voulez vous assurer que vous avez supprimé est stocké dans un objet du modèle auto_ptr sur la pile. Donc, quand cet objet sort de la portée, il prend le pointeur avec lui.
Si vous êtes toujours préoccupé par les fuites, essayez d'utiliser windbg. C'est un outil génial qui vous aide à identifier les fuites de mémoire. J'ai trouvé très efficace de trouver des fuites causées par des poignées.
Cette page pourrait être un bon point de départ: http://msdn.microsoft.com/fr-fr/library/aa366781(VS.85).aspx –
Voir [cette question] (http://stackoverflow.com/questions/45627/how-do-you-detect-avoid-memory-leaks-in-your-non-managé-code) pour beaucoup d'informations. –