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

C++ Discussion :

Test des fuites mémoires


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Points : 31
    Points
    31
    Par défaut Test des fuites mémoires
    Hola,

    Je fais actuellement mon projet de fin d'étude, et pour tester mes fuites mémoires, je ne sais pas si c'est correct de créer deux variables globales pour le constructeur et pour les destructeur et les incrémenter à chaque appel?


    Bref en tout cas, à chaque fois que je crée une variable de mon type, le constructeur est appelé deux fois, je ne comprend pas pourquoi...(ce qui crée des fuites évidemment): j'aurai compris si c'était 3, ou 1:


    je vous donne une partie de mon code:

    il s'agit de créer une classe umh, element d'une liste doublement chaînée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class umh{
          public:
                 umh *mSuivant;
                 umh *mPrecedent;


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    int nConstructeur=0,nDestructeur=0;
     
     
     
     
    void umh::testMemoire(void){
                           cout<<"Nombre de constructeur:                      "<<nConstructeur<<endl;
                           cout<<"Nombre de destructeur:                       "<<nDestructeur<<endl;
                           }
     
     
    umh::umh(Parametre a){
                   cout<<"Constructeur: "<<this<<endl;
                   cout<<this<<endl;
                   cout<<mSuivant<<endl;
                   cout<<mPrecedent<<endl;
                   nConstructeur++;
     
                   mSuivant=NULL;
                   mPrecedent=NULL; ....}

    et donc je tappe dans le programme principal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    umh testtt(a),u(a),c(a);
    testtt.testMemoire();
    et la j'obtiens:
    6 appels de constructeurs
    evidemment 0 appels de destructeur

    à la sortie du prgramme le destructeur est appelé 3 fois, ce qui me parait normal...

    Ce que je ne comprend pas c'est les deux appels de constructeurs à la création de mes objets... Si vous voyez d'ou ça vient ....

    Merci merci!

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par wawa84 Voir le message
    Ce que je ne comprend pas c'est les deux appels de constructeurs à la création de mes objets... Si vous voyez d'ou ça vient ....
    Difficile de voir d'où ça viens, vu que le code posté affiche bien 3 appels de constructeurs

    La vérité doit être ailleurs...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Points : 31
    Points
    31
    Par défaut
    Oh mince, je viens de voir mon erreur y'a pas plus débile: j'incrémentais juste après dans le code...oulalallalalla ça reste entre nous ça ne sort pas d'ici....

    Et voila une matinée de perdue à se prendre la tête...

    ps: merci Sylvain Togni

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. HeapAgent, le bon outil pour la détection des fuites mémoires en C ?
    Par SteAlma dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 04/07/2014, 10h42
  2. Les exceptions feraient des fuites mémoire?
    Par cedricgirard dans le forum Langage
    Réponses: 16
    Dernier message: 28/08/2007, 15h44
  3. Réponses: 19
    Dernier message: 04/10/2006, 16h53
  4. [Outils de test] Profiling et test de fuites mémoire
    Par Playmo dans le forum EDI/Outils
    Réponses: 7
    Dernier message: 23/06/2006, 14h31

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