Bug étrange avec le string et les tableaux statiques
dimaz
-
NHenry Messages postés 15479 Statut Modérateur -
NHenry Messages postés 15479 Statut Modérateur -
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):
Il s'agit de mon premier bug du genre.
Et je compile sous code::block
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
A voir également:
- Bug étrange avec le string et les tableaux statiques
- Bug chromecast - Guide
- Les tableaux word - Guide
- Tableaux croisés dynamiques - Guide
- Iptv bug ✓ - Forum TV & Vidéo
- Fusionner deux tableaux excel - Guide
1 réponse
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.
dimaz
Effectivement, j'ai fait une erreur d'inattention. Merci de ton aide
NHenry
Messages postés
15479
Statut
Modérateur
366
Si le problème est résolu, merci de marquer le sujet comme résolu.