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 :

Pb code block


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Par défaut Pb code block
    Bonjour
    voici mon bout de code mais code block plante et je sais pas pourquoi

    Element est ma classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Pointeur UnElement vers la classe Element
    Element * PointeurVersElement;
    ici je veux faire une liste de mes objets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Tableau Liste_Elements de pointeur sur elements
    vector<Element*> ListeDePointeurVersElement;
    ...
    ici je cré un objet (par la suite il y en aura d'autre que j'extrairais d'un fichier)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        PointeurVersElement = new Element();
        PointeurVersElement->SetNom("A");
        PointeurVersElement->SetEchelle(1);
    ici je renseigne le tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ListeDePointeurVersElement[0]=PointeurVersElement;
    ...
    //ici je dessine mon objet
    //deuxième en passant pb: comment faire pour passer en revu ce tableau et faire la fct dessine de ma classe mais dans une autre fonction (pas dans main)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ListeDePointeurVersElement[0]->Dessine(1);
    le message:
    le fichier a rencontré un pb et doit fermer, ...signaler ce pb à micros...
    et rien dans code block

    merci d'avance

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Citation Envoyé par lio908 Voir le message
    ici je renseigne le tableau
    ListeDePointeurVersElement[0]=PointeurVersElement;
    Attention, un vecteur à sa création possède une taille de zéro. Si tu écris sur la première case avec l'opérateur [], alors tu écris dans de la mémoire non allouée et il peut se passer n'importe quoi n'importe quand (comme un segfault...)

    Pour ajouter un élément en queue du vecteur, il faut utiliser la fonction membre push_back. Ce n'est qu'une fois que la taille du vecteur est supérieure ou égale à N que l'on peut accéder aux N premières cases en [] sans danger.

  3. #3
    Membre confirmé
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Par défaut
    Merci
    j'ai essayé mais ça marche pas

    1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeDePointeurVersElement[0].push_back(PointeurVersElement);
    ou 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListeDePointeurVersElement[0].push_back(1);
    ListeDePointeurVersElement[0]=PointeurVersElement;
    Push_back me demande un bool __X c'est quoi? alors que mon vecteur est un vecteur de pointeur sur les objets de ma classe.

    comprends pas les subtilités
    A+

  4. #4
    Membre confirmé
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Par défaut
    je viens d'essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //declaration du vecteur de 100 éléments
    vector<Element*> ListeDePointeurVersElement(100,PointeurVersElement);
     
    //affectation
    ListeDePointeurVersElement[0]=PointeurVersElement;
    ça marche
    mais si je veux en ajouter un de plus??

    A+

  5. #5
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Non, t'as compris de travers ce que j'ai essayé de dire. Va voir dans la
    Comment créer et utiliser un tableau avec std::vector ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Par défaut
    j'ai essayé push_back() comme t'as dit mais ça marche pas
    quoi mettre dans la parenthèse?
    A+

Discussions similaires

  1. [Débutant] Compiler glu.h sous Code::Blocks
    Par allanp8 dans le forum OpenGL
    Réponses: 10
    Dernier message: 18/11/2007, 00h56
  2. Code blocks ajouter un .lib
    Par gl0be dans le forum Code::Blocks
    Réponses: 7
    Dernier message: 09/09/2006, 15h04
  3. [Code::Block] Traduction francaise?
    Par Zenol dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 20/02/2006, 16h06
  4. [code::blocks] Completion de code
    Par anykeyh dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 20/12/2005, 16h53

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