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, problème d'ajout d'élément dans une list.


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 68
    Par défaut STL, problème d'ajout d'élément dans une list.
    Bonjour,
    Bon j'ai un petit problème... Je bosse sur un code en ce moment que je n'ai pas commencé mais que je dois finir.
    Mais je suis coincé sur une erreur qui m'a l'air stupide... pourtant je n'ai pas trouvé la solution donc j'en appelle à la communauté!!
    Je considére un objet qui ne m'appartient pas mais que je dois utiliser. Je veux le placer dans une liste de pointeurs. Mais ça ne marche pas...
    Voilà grosso modo ce que je fais.
    Peu importe la structure de cette classe car je veux juste "garder"(j'ai pas trouver le mot adéquat) un élément Objet1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Objet1{
     
    ...
     
    }
    Ensuite, dans une autre classe j'ai besoin de ma liste de pointeur sur les éléments:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Objet2{
     
        list <Objet1*> *obj;
        Objet2(list<Objet1*> * obj= NULL);
        ~Objet2();
        void Ajout(Objet1 * toto) {obj->push_back(toto);};
     
    }
    Mais quand j'appelle la fonction Ajout, j'ai une erreur de segmentation et je bloque dessus. J'ai essayé pas mal de truc mais toujours rien.
    Dés demain matin, je m'y remets .
    En attendant je vous remercie de votre aide.
    A bientôt.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    C'est un peu normal que cela se plante:

    Le membre obj de la classe Objet2 est un pointeur sur une liste d'Objet1 mais derrière ce pointeur, il n'y a rien. C'est un pointeur fou ou NULL.

    donc quand tu appelles obj->Ajout(...), tu déréference un pointeur invalide et cela part en cacahuètes.

    Essaye ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Objet2{
     
        list <Objet1*> obj;
        Objet2(list<Objet1*> * obj= NULL); // je ne sais pas trop quoi faire de ce paramètre
        ~Objet2();
        void Ajout(Objet1 * toto) {obj.push_back(toto);};
     
    }
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 68
    Par défaut
    J'avais essayé comme ça mais sans la déclaration du pointeur null dans le constructeur.
    Je vais réessayer, peut-être avais-je mal fait tout ça.
    Par contre, je ne vois plus trop l'intêret d'initialiser un pointeur null, non!?
    Etant donnée que par la suite je travaille sur obj et non sur un pointeur vers lui, a quel moment j'initialise ma list?
    A la création de mon Objet2, je veux juste une liste vide. Par la suite j'y ajouterai des éléments.
    J'essaie tout ça!!
    Merci pour ton aide

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 68
    Par défaut
    Bon, j'ai essayé dans mon code et tout marche!!!
    Par contre je trouve ça toujours bizarre du coup l'initialisation d'un pointeur...
    Merci beaucoup pour ton aide ram-0000.

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par hyuga33 Voir le message
    Par contre je trouve ça toujours bizarre du coup l'initialisation d'un pointeur...
    Que trouves tu bizarre ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 68
    Par défaut
    Dans le constructeur, on initialise un pointeur sur l'attribut.
    Je ne comprends pas en quoi ça initialise cet attribut, surtout qu'après on utilise plus de pointeurs pour y accéder.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/11/2007, 13h11
  2. Réponses: 8
    Dernier message: 27/04/2007, 14h07
  3. Réponses: 12
    Dernier message: 12/03/2007, 16h58
  4. Correction pour ajouté un élément dans une liste
    Par Rifton007 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/01/2007, 11h09
  5. ajouter un élément dans une liste
    Par Le Mérovingien dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 02/07/2006, 17h43

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