Dans unmanaged code C/C++, quelles sont les meilleures pratiques pour détecter les fuites de mémoire? Et des directives de codage à éviter? (Comme si c'est aussi simple que ça ;)
Nous avons utilisé un peu bêtement dans le passé: le fait d'avoir un compteur d'incrémentation pour chaque appel d'allocation mémoire et de décrémentation, tout en libérant de. À la fin du programme, la valeur du compteur doit être égale à zéro.
Je sais que ce n'est pas une grande manière et il ya quelques captures. (Par exemple, si vous êtes à la libération de la mémoire qui a été allouée par une plate-forme de l'API d'appel, le nombre d'allocations ne seront pas correspondre exactement à votre libérant le comte. Bien sûr, ensuite, nous incrémenté le compteur lors de l'appel des appels d'API que la mémoire allouée.)
Je suis dans l'attente de vos expériences, suggestions et peut-être quelques références à des outils qui simplifient.
Cheers