Mais où est passée ma variable? [Resolu] - C - Programmation
Marsh Posté le 29-04-2008 à 16:42:50
Je n'ai pas vraiment de solution mais :
Marsh Posté le 29-04-2008 à 16:44:58
dap++ a écrit : Je n'ai pas vraiment de solution mais :
|
Ok pour les remarques, merci.
Par contre je ne vois pas directement le lien avec ma variable qui se prends pour copperfield.
ps : je ne peux pas parcourir le fichier jusqu'a ce que je rencontre la valeur car aucun ID ne se trouve devant la valeur, je sais juste qu'elle est a 177 caractères après le début.
pss : j'ai rajouter un getchar() pour faire des pauses et voir toutes mes variables, et voila ce qui se passe :
i : 198, nbpts : 319 |
Bon je vous met l'initialisation de ma structure, on sait jamais :
structure_s *my_struct; |
Est-ce que c'est possible d'avoir fait un mauvais ou ommis un malloc, ainsi la place mémoire de la variable my_struct->i_nb_pts_gauche serait écransée....?
Perdu.com
Marsh Posté le 29-04-2008 à 16:58:07
Bon, c'est sur c'est ce code :
fscanf(fic," %f %f %f %f %f", |
qui modifie ma variable, je ne comprends pas pourquoi ni comment, mais lorsque je le retire, la variable conserve sa valeur..
Par quoi remplacer ce scanf et le fseek??
Marsh Posté le 29-04-2008 à 17:01:36
ReplyMarsh Posté le 29-04-2008 à 17:17:15
100% de chance pour que tu as dans ton code un truc du genre :
#define MAXPTS 200
Je te laisse bucher pour savoir ce qui merde ensuite. (Hint: buffer overflow).
Marsh Posté le 30-04-2008 à 09:11:34
tpierron a écrit : 100% de chance pour que tu as dans ton code un truc du genre : |
Hmmmm, ok merci vais demander à google s'il en sait un peut plus sur le buffer overflow. JE M EN VEUX. )
J'espere que je vais devenir bon un jour en prog (il faudrait assez vite) ^
Marsh Posté le 29-04-2008 à 16:32:21
Bonjour à tous et à toutes,
J'ai une structure contenant des informations :
dans une fonction je parcours un fichier texte pour chopper une variable se trouvant 117 caractères plus loin que le début du fichier et je sauve la valeur dans la structure :
j'avance dans le fichier pour aller récuperer des tableaux de points :
et je parcours le fichier en sauvegardant les coordonnées des points :
Ce que je ne comprends pas est :
Si j'affiche ma variable avant la boucle :
elle contient la valeur 317 (normal)
Sauf que si j'utilise cette même variable pour servir de borne à la fonction for, je n'ai plus du tout 317 mais 1144542659. On dirait une adresse, ce qui est vraiment étrange est que je ne modifie pas la variable [i]my_struct->i_nb_pts_gauche pourtant elle se trouve modifée.
Merci beaucoup de votre lanterne.
Ju.
Message édité par jijiz le 30-04-2008 à 09:33:16