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 :

Problème de vecteur


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Alternant concepteur développeur
    Inscrit en
    Février 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Alternant concepteur développeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2014
    Messages : 25
    Points : 15
    Points
    15
    Par défaut Problème de vecteur
    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
    int tab[9],i,deux,cinq;
     
        for(i=0;i<10;i++)
        {
            cout<<"Entrez la note de l'eleve :";
            cin>>tab[i];
        }
        deux=tab[1];
        cinq=tab[4];
        tab[1]=cinq;
        tab[4]=deux;
     
        for(i=0;i<10;i++)
        {
            cout<<tab[i]<<" ";
        }
    Voila mon code,tout simple,je veux juste inverser le deuxième et cinquième élément du vecteur.Le soucis c'est qu'avec ma variable "cinq" qui prend donc la valeur tab[4] il se trouve non seulement elle prend bien cette valeur mais elle la met aussi dans le dernier élément de mon tableau tab[9].C'est à dire que si je rentre dix valeur donc par exemple 1,2,3,4,5,6,7,8,9,10 et qu'ensuite ma variable deux prend comme valeur 2 et ma variable cinq prend comme valeur 5 à à l'affichage de mon tableau j'aurais 1,5,3,4,2,6,7,8,5.La réponse doit être tout con mais je trouve pas en cherchant sur des forums et autres tutos.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 301
    Points : 345
    Points
    345
    Par défaut
    Ton problème vient du fait qu'en déclarant int tab[9] tu n'alloues un tableau que de 9 éléments, en accédant donc à tab[9], tu tapes dans une zone mémoire non allouée par ton programme ce qui est un comportement indéfini.
    PS: pense à utiliser les balises [ CODE ] [ /CODE ]

  3. #3
    Membre à l'essai
    Homme Profil pro
    Alternant concepteur développeur
    Inscrit en
    Février 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Alternant concepteur développeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2014
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Ouai mais nous dans le cours on nous a appris à le déclarer que de cette façon.Donc comment remédier à ce problème de place dans la mémoire j'imagine?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Tu demandes d'accéder au 10ème élément alors que ton tableau n'en contient que 9. D'où le problème...

  5. #5
    Membre confirmé
    Profil pro
    Consultant en technologies
    Inscrit en
    Octobre 2013
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Octobre 2013
    Messages : 158
    Points : 555
    Points
    555
    Par défaut
    C et C++ numérote à partir de zéro, donc un tableau de 9 élements aura des index de zéro à huit, c'est un peu misleading mais si tu compte sur les doigts de 0 à 9 tu as 10 éléments.
    C'est une erreur qu'on a tous fait une fois.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Alternant concepteur développeur
    Inscrit en
    Février 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Alternant concepteur développeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2014
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Effectivement je suis une brêle!Dans ma tête comme ça commençais à 0(je le savais en fait) je me suis dis que en créant tab[9] ça faisait 10 éléments avec le 0!Merci en tout cas!

Discussions similaires

  1. Problème de Vecteur
    Par larchicha dans le forum Débuter
    Réponses: 17
    Dernier message: 27/04/2010, 14h58
  2. [ode45] problème taille vecteurs
    Par chardonnette dans le forum MATLAB
    Réponses: 3
    Dernier message: 30/01/2009, 10h31
  3. petit problème de vecteur
    Par Ulfguard dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 16/05/2007, 11h09
  4. Problème orientation vecteur directeur
    Par Ryan_ dans le forum DirectX
    Réponses: 1
    Dernier message: 14/02/2007, 19h24
  5. Problème de vecteur
    Par mat_monroe dans le forum MFC
    Réponses: 12
    Dernier message: 22/05/2006, 15h04

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