• [^] # Re: nb est un octet

    Posté par . En réponse au message manipuler fichier binaire. Évalué à 3.

    le paramètre "step" que tu passes à fread ne sert à rien ici. regarde la valeur de retour pour voir combien d'octets il a lu (1 seul normalement).

    Hélas non. Si step est supérieur à un, fread va lire step*1 (le deuxième argument) octets et ranger tout ça à l'adresse '&nb'. Comme nb est un char, il va yavoir écrasement mémoire. Par contre, ensuite, losqu'on manipule nb, on ne vois que le premier octet, c'est normal, mais plusieurs ont été lus.

    Donc, il faut remplacer nb par un buffer de char suffisament grand (genre char buff[5]), en vérifiant que step est toujours inférieur à la taille de ce tableau. Puis int lu = fread(buff, sizeof(char), step, infile);.
    Noter l'absence de '&' devant buff.

    Maintenant, j'ai pas bien compris le but de cette ligne. Je ne peux donc pas aider plus.