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 :

Erreur de compilation etrange lié a un switch ?


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Points : 81
    Points
    81
    Par défaut Erreur de compilation etrange lié a un switch ?
    Voila je peux declarer une liste a l'exterieur de mon switch mais pas dedans ?
    De meme pour afficher ma liste j'ai été obliger de le faire dans une fonction que j'appelle dans le switch sinon ca plante !!
    Voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int main () {
      system("clear");
      int km;
      string im,m;
     
      list<Voiture> ls_veh;
      list<Voiture> la;
    list declarée ici compile OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int choix=menu();
      while (choix!=0)
        {
          switch (choix)
    	{
    	case 1 :
    	  system("clear");	    
    	case 2:
    	  afficheListe(ls_veh);
    	  list<Voiture> loi;
    declarer une liste ici ca plante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	  break;
    	case 3 :
    	  break;
     
    	}
          choix=menu();
        }
      system("clear");
     
    }
    main.cc: In function `int main()':
    main.cc:63: error: jump to case label
    main.cc:61: error: crosses initialization of `std::list<Voiture, std::allocator<Voiture> > loi'
    main.cc:65: error: jump to case label
    main.cc:61: error: crosses initialization of `std::list<Voiture, std::allocator<Voiture> > loi'
    main.cc:67: error: jump to case label
    main.cc:61: error: crosses initialization of `std::list<Voiture, std::allocator<Voiture> > loi'
    main.cc:69: error: jump to case label
    main.cc:61: error: crosses initialization of `std::list<Voiture, std::allocator<Voiture> > loi'
    main.cc:71: error: jump to case label
    main.cc:61: error: crosses initialization of `std::list<Voiture, std::allocator<Voiture> > loi'
    main.cc:73: error: jump to case label
    main.cc:61: error: crosses initialization of `std::list<Voiture, std::allocator<Voiture> > loi'
    main.cc:63: warning: destructor needed for `loi'

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Comme tu le vois, déclarer une variable dans un switch pose des problèmes, puisque le code ne passera pas forcément à cet endroit, mais la variable aura comme portée le bloc d'accolade courant.

    Donc solution : ajouter un bloc d'accolades.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    case x :
    {
        list<xxx> ma_var;
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Points : 81
    Points
    81
    Par défaut
    merci une fois de plus

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Points : 0
    Points
    0
    Par défaut
    en 2012 j'ai cette erreur:jump label..
    la paire{} résoud mon/le problème..
    Sen.bisous!
    Cordialement.
    Sen.

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

Discussions similaires

  1. etrange erreur de compilation.
    Par lilington dans le forum Debian
    Réponses: 2
    Dernier message: 07/03/2014, 10h13
  2. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  3. Erreur de compilation avec SWITCH et CASE
    Par barbarello dans le forum C++
    Réponses: 4
    Dernier message: 21/01/2006, 21h47
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

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