8 votes

Quel est le meilleur moyen de vérifier les fuites de mémoire en c++?

Je suis en train d'implémenter une matrice creuse avec des listes chaînées et ce n'est pas amusant de vérifier manuellement les fuites de mémoire, des idées ?

18voto

Konrad Rudolph Points 231505

Le profileur valgrind pour Unix offre une détection de fuite décente.

Cependant, ce n'est qu'une partie d'une approche réussie. L'autre partie consiste à prévenir (c'est-à-dire minimiser) la manipulation explicite de la mémoire. Les pointeurs intelligents et les allocateurs peuvent grandement aider à prévenir les fuites de mémoire. De plus, utilisez les classes STL : une implémentation de liste chaînée sans fuite est déjà fournie par std::list.

4voto

AlexC Points 560

Sous Windows:

Compuware BoundChecker (un peu coûteux mais très bien)

Visual LeakDetector (gratuit, recherchez-le sur Google)

Sous Linux/Unix:

Purify

1voto

Andy Brice Points 1588

La version originale de Purify sur Unix était brillante. Mais la version Windows produite après l'achat par Rational est terrible. Fuyez à tout prix.

0voto

R.Chatsiri Points 47

Si vous utilisez Anjuta, vous pouvez utiliser le module valgrind.

0voto

Vous pouvez lire un bon article sur les fuites de mémoire sur Wikipedia : http://fr.wikipedia.org/wiki/Fuite_de_mémoire

Cette page contient également de bons liens vers d'autres articles et même des programmes qui vous seront très utiles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X