Dans le code C / C ++ non managé, quelles sont les meilleures pratiques pour détecter les fuites de mémoire? Et les directives de codage à éviter? (Comme si c'était aussi simple que ça;)
Nous avons utilisé une méthode un peu stupide dans le passé: avoir un compteur incrémenté pour chaque appel d'allocation de mémoire et décrémenter lors de la libération. À la fin du programme, la valeur du compteur doit être zéro.
Je sais que ce n'est pas un excellent moyen et qu'il y a quelques prises. (Par exemple, si vous libérez de la mémoire qui a été allouée par un appel d'API de plate-forme, votre nombre d'allocations ne correspondra pas exactement à votre nombre de libérations. Bien sûr, nous avons incrémenté le compteur lors de l'appel des appels d'API qui ont alloué de la mémoire.)
J'attends vos expériences, suggestions et peut-être quelques références à des outils qui simplifient cela.