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 :

[std::map] Erreur de segmentation


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �prouv�
    Profil pro
    �tudiant
    Inscrit en
    Avril 2007
    Messages
    133
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 133
    Par d�faut [std::map] Erreur de segmentation
    Bonjour,

    je vous expose mon probleme, je n'arrive plus � executer mon programme qui bute � cet appel de fonction. Une erreur de segmentation est lev�e, et je ne vois pas du tout ou pourrait se trouver le probl�me.
    Peut-�tre au niveau de l'utilisation de la map, avec qui je ne suis pas trop � l'aise pour le moment. Si vous avez une id�e, ce serait sympathique de me d�bloquer (:

    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
     void ControllerManager::treatEvents(int state){
       14     /* Checking if state is wrong, or no binds are specified for it */
       15     if (bindings.find(state) != bindings.end()){
       16         std::vector<Binding *> binds = bindings[state];
       17         SDL_Event event;
       18         if (binds.size() > 0){
       19             while (SDL_PollEvent(&event)){
       20                 /* If a bind corresponds to the event, we execute the action linked to it */
       21                 for (int i = 0; i < binds.size(); i++){
       22                     if (binds[i]->equals(event)){
       23                         binds[i]->execute();
       24                     }
       25                 }
       26             }
       27         }
       28     }
       29 }
    Merci d'avance ))

  2. #2
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    2 155
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 155
    Par d�faut
    D�j� utilise au maximum les it�rateurs!
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     void ControllerManager::treatEvents(int state){
       14     /* Checking if state is wrong, or no binds are specified for it */
       15     if (bindings.find(state) != bindings.end()){
       16         std::vector<Binding *> binds = bindings[state];
       17         SDL_Event event;
       18         if (!binds.empty() ) {
       19             while (SDL_PollEvent(&event)){
       20                 /* If a bind corresponds to the event, we execute the action linked to it */
                           std::vector<Binding *>::iterator iter; // etc...
       25                 }
       26             }
       27         }
       28     }
       29 }

  3. #3
    Membre chevronn�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Par d�faut
    Dans un debuggeur �a plante sur quelle ligne ?

  4. #4
    Membre �clair� Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par d�faut

    La map ne me semble pas en cause ici.
    En m�me temps une map<int, vector<Binding *> > est t'elle vraiment la structure ad�quate ?

    bolhrak a raison �xecute ton code pas � pas car difficile de trouver pr�cis�ment o� peux faire planter une segmentation fault sinon

  5. #5
    Membre �prouv�
    Profil pro
    �tudiant
    Inscrit en
    Avril 2007
    Messages
    133
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 133
    Par d�faut
    Merci pour vos r�ponses, j'ai cibl� le probl�me gr�ce � gdb et il se trouvait que j'appelais betement une m�thode sur un pointeur null....

    Ce qui malgr� tout me parait �trange, puisque quand je supprimais juste le contenu de la m�thode copi� �i-dessus, et non la signature, l'invocation de la methode sur ce pointeur qui etait donc toujours null ne cr�ait pas de segfault.

    Enfin, voi�i donc quelque chose de r�solu ! 'Journ�e !

  6. #6
    Membre �clair� Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par d�faut
    Citation Envoy� par ipingu Voir le message
    Ce qui malgr� tout me parait �trange, puisque quand je supprimais juste le contenu de la m�thode copi� �i-dessus, et non la signature, l'invocation de la methode sur ce pointeur qui etait donc toujours null ne cr�ait pas de segfault.
    Si ta m�thode est vide (sans corps), je pense que le compilateur est suffisament "intelligent" pour optimiser et ne pas ex�cuter cette m�thode.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 7
    Dernier message: 12/05/2010, 15h33
  2. Lib�rer des pointeurs dans une std::map
    Par GaldorSP dans le forum SL & STL
    R�ponses: 2
    Dernier message: 09/07/2005, 14h42
  3. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    R�ponses: 11
    Dernier message: 26/03/2005, 14h25
  4. erreur de segmentation
    Par transistor49 dans le forum C++
    R�ponses: 10
    Dernier message: 15/03/2005, 11h18
  5. Trier un std::map selon les valeurs plutot que les cl�s
    Par dj.motte dans le forum SL & STL
    R�ponses: 2
    Dernier message: 13/11/2004, 21h54

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