Bonjour,
Pour vérifier les fuites mémoires de mon programme j'utilise valgrind.
Voici "l'oubli" de libération détecté par valgrind (ligne avant la stl en gras) :
==7393== by 0x8053AE2: std::vector<double, std::allocator<double> >::push_back(double const&) (stl_vector.h:564)
==7393== by 0x80D07FC: Quadri::calculGeometrieOmbre(double&, double&, double&, std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&, double&, double&, std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&, int, int, double&)
Dans ma fonction Quadri, avant appel aux fonctions de la stl, voici la ligne de code fautive :
Hauteur_Hough.push_back( xxx );
où Hauteur_Hough est un vecteur de double et xx est un double.
Je ne comprend pas l'erreur, car normalement, en utilisant les fonctions push_back etc... je ne devrais pas avoir à me soucier des allocations. Dans mon programme j'ai d'autres fuites du meme type lorsque je fais un push_back d'instance d'objet. Je pensais donc que ca venait de ma façon de construire/détruire mon objet. Mais la, ca me le fait pour des doubles alors je comprends plus....
Est ce que quelqu un aurait une piste à me fournir pour résoudre mon problème ?
Merci d'avance pour votre aide
Francois
Partager