[C/C++] bizarre: fprintf change d'autres var!

Résolu/Fermé
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007 - 31 mai 2007 à 20:43
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007 - 5 juin 2007 à 14:35
Bien le bonjour!

Alors là j'en ai une bien bonne!

Je vous explique:
Dans mon petit programme simplounet je dois récupérer une chaine dans un fichier temporaire que j'ai créé. Là tout va bien, mais voilà qu'une autre variable(qui n'a strictement rien à voir!) a aussi changé de valeur!
Regardez par vous même:

char nameTemp[50] = "";
char providerConf[50] = "";
...
fscanf(FileTemp, "%s", &nameTemp);
...


Et bien croyez moi, j'ai même vérifié sur la console en rajoutant de simples printf avant et après cette ligne, mais providerConf passe de sa valeur normale à... un truc inmangeable! (du genre: "ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ..." ou bien: "=========...")

Si jamais vous savez de quoi il s'agit ça serait sympa de m'éclairer!

3 réponses

christboy Messages postés 157 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 30 juillet 2008 20
1 juin 2007 à 08:10
pourrais-tu détailler ton code stp ?
char nameTemp[50] = "";
char providerConf[50] = "";
...
fscanf(FileTemp, "%s", &nameTemp);
...


qu'y a-t-il a la place des "..." ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
1 juin 2007 à 09:55
Salut
Remplace fscanf(FileTemp, "%s", &nameTemp); par fscanf(FileTemp, "%s", nameTemp);
En effet nameTemp n'a pas besoin d'ampersand.
Si l'autre variable a changé de valeur, c'est que tu as fait du Buffer OverFlow à cause de l'adresse mémoire.

Normalement, avec cette correction, il ne devrait plus y avoir de problèmes.

Bonne journée
0
gachneux Messages postés 10 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 5 juin 2007
5 juin 2007 à 14:35
Effectivement ça fonctionne!
Je me disais aussi que c'était bizare!

Merci beaucoup fiddy!
Et à toi aussi christboy pour t'y être interessé! (je n'avais pas mis le reste car c'était plutôt long et ça n'avait pas l'air d'y être mélé...!)
0