Bonjour,
Je programme avec Visual Studio Express 2005.
J'ai installé Visual Leak Detector, un detecteur de fuite de mémoire... efficace !
Du coup j'ai pu corriger quelques fuites, mais une derniere me laisse perplexe.
J'ai une classe cListe qui peut contenir des elements.
On ajoute un élément avec :
Et j'ai une fuite sur certains éléments créés, indiquée sur la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int m_valeur; std::string m_texte; void ajouterElement(int valeur, std::string texte) { m_valeur = valeur; m_texte = texte; }
m_texte = texte;
J'ai donc pensé que je ne libérais pas la mémoire de certaines string... pour vérifier, j'ai codé en dur :
Et là, j'ai une fuite de mémoire systématique dans l'éxecution de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 pListe->ajouterElement(0, "test 1"); pListe->ajouterElement(0, "test 2"); pListe->ajouterElement(0, "test 33333333333333333333"); pListe->ajouterElement(0, "test 4"); pListe->ajouterElement(0, "test 5");
pListe->ajouterElement(0, "test 33333333333333333333");
Comme si la longueur de la chaine posait probleme....
Je m'y prend mal avec les std::string ?
Merci !
Partager