Bug étrange avec le string et les tableaux statiques

-
Bonjour,
J'ai le projet de crée un programme C++ capable de convertir les nombres écrit (par exemple : dix) en valeur numérique (ici c'est : 10). Sauf que j'ai un problème avec un string qui change de valeur sans que l'on lui ai demander.

J'ai réussis à extraire le bout de code qui bug dans ce programme (il est long mais facile à lire):

#include <iostream>

using namespace std;

int main()
{
    string mot;
    cout << "ecrit un mot" << endl; //j'écrit par exemple "coucou"
    getline(cin, mot);

    int const tailleListe = 17;

    string nombreListe [tailleListe];
    nombreListe[0] = "zero";
    nombreListe[1] = "un";
    nombreListe[2] = "deux";
    nombreListe[3] = "trois";
    nombreListe[4] = "quatre";
    nombreListe[5] = "cinq";
    nombreListe[6] = "six";
    nombreListe[7] = "sept";
    nombreListe[8] = "huit";
    nombreListe[9] = "neuf";
    nombreListe[10] = "dix";
    nombreListe[11] = "onze";
    nombreListe[12] = "douze";
    nombreListe[13] = "treize";
    nombreListe[14] = "quatorze";
    nombreListe[15] = "quinze";
    nombreListe[16] = "seize";
    nombreListe[17] = "vingt";

    cout<<mot<<endl; // et ce n'est plus "coucou" qui est enregistré mais "vingt" (le contenu de la dernière ligne du tableau statique)
    return 0;
}


Il s'agit de mon premier bug du genre.
Et je compile sous code::block
Afficher la suite 

1 réponse

Messages postés
14552
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 septembre 2019
175
0
Merci
Un tableau de taille 17 va de 0 à 16 (17 cases) donc taper en case 17 t'offre un petit buffer overflow, c'est déjà pas mal, car tu peux aussi avoir un SEG FAULT.
Effectivement, j'ai fait une erreur d'inattention. Merci de ton aide
NHenry
Messages postés
14552
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 septembre 2019
175 -
Si le problème est résolu, merci de marquer le sujet comme résolu.
Commenter la réponse de NHenry