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 :

allocton et désallocation


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 105
    Points : 41
    Points
    41
    Par défaut allocton et désallocation
    Bonjour à tous;
    J'aurais une petite question à vous soumettre.
    J'utilise une méthode qui crée des objets par recopie dans une boucle.
    je ne sais pas si cette écriture loue et et désalloue correctement de la mémoire.

    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
    21
    22
    23
    24
     
     
    class ClassType; // la classe utilisée
     
    ClassType* getMaClasse(int numero)
    {
     
    ClassType* pClasse=creerObjet(numero);// methode gérnt l"exclusion //sur une liste
     
    return new MaClassType(*pClasse);// Constructeur par recopie
     
    }
     
    void Traitement()
    {
       for&#40;int i=0; i<N;i++&#41;&#123;
         ClassType* MonObjet=getMaClasse&#40;&#41;;//Allocation
          Traitement&#40;MonObjet&#41;;
          delete MonObjet;  //Désallocation
     
      &#125;
     
    Merci à tous.
    &#125;

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Tu as définitivement une fuite. Pourquoi cette copie (par copie-construction) ?

    EDIT: fuite en supposant que creerObjet() fait également un new comme son nom l'indique clairement.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 105
    Points : 41
    Points
    41
    Par défaut
    J'utillise une copie par reconstruction, tout simplement, car je gère
    l'exclusion sur une liste d'objets.
    Quand une méthode veut accéder à un objet de la liste, la liste renvoie une copie et non l'objet lui même avec la copie on peut lire le contenu de l"objet, le modifier. Pour mettre à jour l'objet modier, ma classe contient une méthode modifier qui reçoit la copie et gère l'exclsuion et met à jour la liste.

    Est ce que dans l'écriture que j'ai faîte ci dessus je risque une fuite mémoire. Où bien je désalloue correctement mes objets?

  4. #4
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    Salut,

    Il est impossible de dire si il y a une fuite avec si peu de code.

    a priori tu effaces l'objet que tu as crée, mais comme le dit Luc Hermitte si creerObjet fais aussi un new il y a une fuite.

    XXiemeciel
    XXiemeciel

Discussions similaires

  1. Désallocation mémoire des types record
    Par mounis dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2006, 14h21
  2. Désallocation de mémoire ...
    Par Mike888 dans le forum C
    Réponses: 9
    Dernier message: 18/01/2006, 11h42
  3. [PERL] problème désallocation de variable
    Par LE NEINDRE dans le forum Langage
    Réponses: 11
    Dernier message: 24/08/2005, 11h07
  4. Réponses: 2
    Dernier message: 15/11/2004, 16h12
  5. [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, 21h14

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