Buffer over read ?

Signaler
Messages postés
38
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
22 mars 2005
-
Messages postés
688
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
19 mai 2005
-
Bonjour,

J'ai fait un programme, plutôt complexe en C.
De temps en temps ce prog me retourne des choses bisardes.
Par exemple, j'ai une variable qui doit me retourner un pseudo, celui ci me retourne:

"ed: @ABAck)"

On m'a parlé de buffer over read, une lecture d'une autre variable alors qu'elle ne le devrait pas.

-Comment je peux cerner la variable qui bug ?

-Comment pourais-je resoudre ce probleme ?

merci.
Cordialement, Djoobstil

4 réponses

Messages postés
20
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
25 mars 2009

Si tu es bien sur d'avoir correctement déclaré, initialisé, et affecté ta variable avec ton pseudo il y a des chances pour que ce soit bien ça. Dans ton cas ce n'est pas je pense la lecture d'une autre variable qui pose problème mais plutôt l'écriture d'une variable sur la tienne (d'où overhead=débordement).
Si tu veux voir d'où vient ce problème : regarde pendant l'execution la mémoire à l'adresse de ta variable lue. Qu'y a-t-il avant? Est-ce que ça ne serait pas un autre de tes char* ? Dans ce cas va voir partout où tu lui affecte des caractères et verifie bien que tu ne lui en met pas trop (sinon, forcément, ben.... ca déborde et, pas de bol, sur la variable d'à coté). Si tu n'arrive pas à identifier le problème comme ça tu peux toujours utiliser la méthode bourrin : Tu met des breakpoints un peu partout dans ton code et tu regarde l'évolution de ta variable. Quand tu as identifié le code responsable, tu sors le lance-flammes et tu te fait plaisir.

----------------------------------
Mangez des gnous!
Messages postés
38
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
22 mars 2005

Donc j'aurais initialisé une variable avec une taille trop petite pour ce que je veux mettre dedans et sa déborderai sur la variable du pseudo ?

Cordialement, Djoobstil
Messages postés
20
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
25 mars 2009

C'est possible et c'est une erreur assez classique mais le problème maintenant pour toi reste à savoir si c'est bien ça.
Essaie d'utiliser les methodes que j'ai indiqué déjà.

-------------------------------
Mangez des gnous!
Messages postés
688
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
19 mai 2005

Effectivement gillou1664 moi aussi j'avait le meme prob et ca venais d'un char * qui ecrivé sur mes variable :)

Bonne chance Djoobstil

Life is Short 8-)