IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

[STL]string, fuites de mémoires


Sujet :

SL & STL C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Par défaut [STL]string, fuites de mémoires
    Bonjour,

    J'ai des petits problèmes de fuites de mémoires avec des strings attributs d'un objet. En effet, lorsque l'objet est créé, la chaîne de caractères est vide, puis je lui affecte différentes valeurs.
    Tout compile et s'exécute correctement. Mes objets, créés dynamiquement, sont bien effacés avec delete.
    J'ai donc lancé purify pour voir s'il y avait des fuites de mémoires, et là j'ai donc des fuites de mémoires sur les chaînes de caractères en question...
    Est-ce qu'une string est créée et copiée dynamiquement à chaque affectation? Si oui, comment faire pour libérer la mémoire des chaînes de caractères?

    Merci

    PS:j'utilise visual 6

  2. #2
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut
    Peux-tu poster un peu de ton code (la fonction en question) ?

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par anasama
    Bonjour,

    J'ai des petits problèmes de fuites de mémoires avec des strings attributs d'un objet. En effet, lorsque l'objet est créé, la chaîne de caractères est vide, puis je lui affecte différentes valeurs.
    Tout compile et s'exécute correctement. Mes objets, créés dynamiquement, sont bien effacés avec delete.
    J'ai donc lancé purify pour voir s'il y avait des fuites de mémoires, et là j'ai donc des fuites de mémoires sur les chaînes de caractères en question...
    Est-ce qu'une string est créée et copiée dynamiquement à chaque affectation? Si oui, comment faire pour libérer la mémoire des chaînes de caractères?

    Merci

    PS:j'utilise visual 6
    Si les std::string sont utilisés en tant que valeur et non alloués dynamiquement, il n'y a pas de fuite mémoire, c'est un cas courant de plantage des outils de profiling.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Peut-être un rapport avec ceci ?

    http://c.developpez.com/faq/cpp/?pag...MES_STL_fuites

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Par défaut
    Merci pour vos réponses.

    Pour le code, en voici un qui ressemble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //.h
    class monObjet{
    std::string maString;
    ...
     
    //.cpp
    ...
    maString = "truc"; // j'ai aussi essayé avec append
    Miles, je ne comprends pas bien l'allusion au plantage des outils de profiling. Ca veut dire que purify trouve une fuite de mémoire alors qu'il n'y en a pas? et je dis quoi alors au client : " purify trouve des fuites de mémoires mais en fait il n'y en a pas"?...

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Exactement. Regarde le lien dans la FAQ que Laurent t'as donné, c'est bien expliqué

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Par défaut
    J'avais vu le lien, mais comme il y a marqué que c'est des cas isolés, je me suis dit que la vérité était peut être ailleurs...

    Merci en tout cas

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    C'est justement un lien avec un problème avec les string, tu as dû tomber sur la mauvaise plateforme

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Par défaut
    J'avais ni le choix des outils, ni celui de la plateforme, hélas...

Discussions similaires

  1. std::string et fuite de mémoire
    Par buzzkaido dans le forum SL & STL
    Réponses: 19
    Dernier message: 12/06/2007, 15h55
  2. Réponses: 8
    Dernier message: 09/02/2007, 15h31
  3. fuite de mémoire
    Par mamag dans le forum MFC
    Réponses: 17
    Dernier message: 19/08/2005, 10h42
  4. Fuite de mémoire en utilisant le template list
    Par schtroumpf_farceur dans le forum Langage
    Réponses: 9
    Dernier message: 18/07/2005, 20h44
  5. Réponses: 8
    Dernier message: 17/10/2002, 12h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo