Bug en release et pas en debug (Visual C++) [C++] - C++ - Programmation
Marsh Posté le 08-07-2004 à 21:54:33
Taz a écrit : result.indice = decompos[0]; |
Bah je stocke ainsi un char* dans un string
(ouais, pardon, tous les membres de la classe Joueur sont des string)
Marsh Posté le 08-07-2004 à 22:30:40
char decompos[6][256];
result.proprio = decompos[6];
=> tu peux pas écrire decompos[6]
Marsh Posté le 08-07-2004 à 21:31:03
Bonjour à tous.
Voila ... j'étais assez fier d'un truc que j'ai fait en c++. j'ai donc voulu voir ce que cela allait donné en "release", m'attendant inévitablement à des erreurs, particulierement de mémoire.
Apres un premier test, j'ai été surpris de voir que mon appli s'arretait en cours de route, sans signaler d'erreur. Apres avoir vaguement localié la zone d'arret, je modifie les parametres d'optimization, pour le mettre en "default". Et là, "enfine une erreur, une vraie, d'acces mémoire.
Me voilà donc avec mes "cout << "toto"" partout, pour essayer de tracer. ce n'est surement pas la meilleure méthode, mais c'est la seule qui m'est venue.
J'arrive donc à ces lignes là :
et
Bref, là j'essaie de voir les différentes valeurs de i, j et k, puisque l'erreur semble apparaitre dans la boucle while de Tokenize.
"cout << i << " " << j << " " << k << " " << p_ligneFichier[i] <<"\n";"
Tokenize reçoit une ligne d'un fichier, la parcours et la décompose.
i désigne la position du caractere étudié dans la chaine fourni en argument. or, tout va bien jusqu'au 45ieme caractere ... puisqu'alors l'affichage m'indique que i est passé à 35, au lieun de 46. Il va sans dire que cela ne doit pas aider à faire fonctionner le zinzin ...
je suis repassé en debug, pour tracer, et ça passe bien le "46ieme caractere" ...
Une idée sur la raison du pourquoi du comment ?
PS : j'ai volontairement virer des constantes, et un peu "sali" le code, pour les phases de dubg du release ...