Création
d'entreprise
Posez votre question Signaler

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

gachneux 10Messages postés 23 mai 2007Date d'inscription - Dernière réponse le 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!
Lire la suite 

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

3 réponses
Réponse
+0
moins plus
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 "..." ?
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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é...!)
Ajouter un commentaire
Ce document intitulé « [C/C++] bizarre: fprintf change d'autres var! » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?