Votre question

Pouvez vous m'expliquer?

Tags :
  • Programmation
Dernière réponse : dans Programmation
19 Avril 2010 13:20:58

Bonjour a tous ;) 

1/ Comment récupérer l'entier qui nous place à la position 0 dans le fichier si ce prototype renvoie rien?

  1. void rewind(FILE* pointeurSurFichier);


2/
Citation :
Citation d'un totorial :
Ce schéma montre que la chaîne écrite par fgets était "Mateo\n\0". Nous avons remplacé le \n par un \0, ce qui a donné au final : "Mateo\0\0".
Ce n'est pas grave d'avoir deux \0 d'affilée. L'ordinateur s'arrête au premier \0 qu'il rencontre et considère que la chaîne de caractères s'arrête là.


Il y a un problème dans ce qu'il dit car si j'alloue un tableau de 6 char et j'entre le mot "Salut" alors il y aura "Salut\n\o" et même si je remplace \n par \0 j'aurais "Salut\0\0" donc débordement ? :??: 

Autres pages sur : pouvez expliquer

a b L Programmation
19 Avril 2010 19:23:41

1) rewind ne fait que modifier le pointeur dans le fichier, tu dois le lire après.

2) oui c'est du buffer overflow.
m
0
l
19 Avril 2010 20:34:58

Alors la solution c'est d'allouer un tableau de 7 char pour écrire "Salut" ?? c'est ça?
m
0
l
Contenus similaires
a b L Programmation
19 Avril 2010 21:53:11

Oui, mais normalement, tu alloues un plus grand buffer et tu lui donne la taille dans fgets.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS