Tableau de string et gdb
Résolu
mat-ser
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
nagaD.scar Messages postés 4500 Statut Membre -
nagaD.scar Messages postés 4500 Statut Membre -
Bonjour,
voci le tableau:
et voici ce que me dit gdb:
on a string n1="36",n2="00". Pour rang=2, on devrais avoir a="6" au lieu de "10"
quelqu'un a une idée?
voci le tableau:
string tableAdd[][11]={
{"0","1","2","3","4","5","6","7","8","9","10"},
{"1","2","3","4","5","6","7","8","9","10","11"},
{"2","3","4","5","6","7","8","9","10","11","12"},
{"3","4","5","6","7","8","9","10","11","12","13"},
{"4","5","6","7","8","9","10","11","12","13","14"},
{"5","6","7","8","9","10","11","12","13","14","15"},
{"6","7","8","9","10","11","12","13","14","15","16"},
{"7","8","9","10","11","12","13","14","15","16","17"},
{"8","9","10","11","12","13","14","15","16","17","18"},
{"9","10","11","12","13","14","15","16","17","18","19"},
{"10","11","12","13","14","15","16","17","18","19","20"}
};
et voici ce que me dit gdb:
a=tableAdd[n1[rang-1]-'0'][n2[rang-1]-'0']; (gdb) display a 20: a = "10"
on a string n1="36",n2="00". Pour rang=2, on devrais avoir a="6" au lieu de "10"
quelqu'un a une idée?
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
2 réponses
-
Hello,
(je sais si t avais vu mais j avais mal lu avant, bref)
j'ai donc testé:string tableAdd[][11]={ {"0","1","2","3","4","5","6","7","8","9","10"}, {"1","2","3","4","5","6","7","8","9","10","11"}, {"2","3","4","5","6","7","8","9","10","11","12"}, {"3","4","5","6","7","8","9","10","11","12","13"}, {"4","5","6","7","8","9","10","11","12","13","14"}, {"5","6","7","8","9","10","11","12","13","14","15"}, {"6","7","8","9","10","11","12","13","14","15","16"}, {"7","8","9","10","11","12","13","14","15","16","17"}, {"8","9","10","11","12","13","14","15","16","17","18"}, {"9","10","11","12","13","14","15","16","17","18","19"}, {"10","11","12","13","14","15","16","17","18","19","20"} }; string n1="36"; string n2="00"; int rang=2; string a=tableAdd[n1[rang-1]-'0'][n2[rang-1]-'0']; cout << a << endl;
pour obtenir "6" comme résultat. Donc pas de soucis.
Du coup il faudrai un peu plus de code pour trouver l erreur.
Naga-
Ah et question c*n: pourquoi avoir une ligne d indice 10 alors que tu ne la lira jamais ? (sauf si n1[0] ou n1[1] = ':' mais bon)
- ça doit être un bug de gdb, ou des paramètres que j'utilise mal (j'utilise gdb depuis peu)
display tableAdd 11: tableAdd = {{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}, {"10", "1", "2", "3", "4", "5", "6", "7", "8", "9"}, {"10", "11", "2", "3", "4", "5", "6", "7", "8", "9"}, {"10", "11", "12", "3", "4", "5", "6", "7", "8", "9"}, {"10", "11", "12", "13", "4", "5", "6", "7", "8", "9"}, {"10", "11", "12", "13", "14", "5", "6", "7", "8", "9"}, {"10", "11", "12", "13", "14", "15", "6", "7", "8", "9"}, {"10", "11", "12", "13", "14", "15", "16", "7", "8", "9"}, {"10", "11", "12", "13", "14", "15", "16", "17", "8", "9"}, { "10", "11", "12", "13", "14", "15", "16", "17", "18", "9"}}
-
Là je ne pourrai pas vraiment t aider, je ne suis pas familier de gdb.
Par contre le problème ne vient pas de ton code (en tout cas pas dans le contenu posté).
Si j ai l occasion je regarderai mais je ne pourrai probablement avant lundi .. Mais il y a surement d'autres ici qui pourront mieux t aider que moi. Bon dev en tout cas. (j ai seulement vérifier quelques exception pour essayer d obtenir le "10" mais rien de probant)
-
-
euréka!
le tableau est dans un fichier (cpp car on ne peut pas mettre des données dans les hpp), correctemment posé en 11x11.
MAIS, dans le fichier qui utilise cette table il était déclaré:extern tableAdd[10][10]
En remplaçant 10 par 11:extern tableAdd[11][11]
Et là, ça marche