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

Discussion :

Désallocation en chaîne

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 53
    Points : 88
    Points
    88
    Par défaut Désallocation en chaîne
    Bonsoir,
    j'ai une classe Graphe qui contient entre autre une un pointeur de liste de pointeur de courbe. et j'aimerais à la fermeture de mon graphe désallouer tout ça

    seulement.... avec les tests je remarque que ma mémoire ne diminue pas après fermeture de mon graphe.

    Voici commence est constitué mon code :

    Graphe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Graphe::~Graphe(){
    ....
     
         for(int i = 0; i < liste_courbe->size(); i++)
         {
             delete liste_courbe->at(i);
         }
          delete liste_courbe;
    .....
    }

    Programme principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                Graphe * g = new Graphe(this, XXX, XXX, XXX);
                if(g->result() != QDialog::Rejected)
                {
                    if(g->result() == QDialog::Accepted)
                    {
                        g->exec();
                    }
                }
     
                delete g;

    le code est incoherent pour desallouer le tout à la fermeture du graphe ??
    Ou alors cela ne viens pas de la et il faut que j'aille chercher autre chose qui me pompe la mémoire ??



    Merci de votre aide

  2. #2
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Tu ne sembles pas utiliser les classes Qt pour ton graphe, sinon en passant un parent à tous tes objets, ceux ci sont automatiquement détruits quand le parent est détruit.

    Donc dans ton cas, le code semble bon. Peut être que l'OS n'indique pas immédiatement la différence de mémoire utilisée, même après l'avoir libérée. C'est difficile de savoir exactement ce qu'il passe. Tu pourrais éventuellement créer et détruire un graphe en boucle pour voir si ta mémoire augmente sans jamais redescendre, à ce moment là y'aura sûrement une fuite.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Inverser une chaîne de caractères
    Par DBBB dans le forum Assembleur
    Réponses: 2
    Dernier message: 30/03/2003, 11h09
  3. Comptage de mots dans une chaîne
    Par kikinou dans le forum Pascal
    Réponses: 10
    Dernier message: 01/01/2003, 02h27
  4. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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