• [^] # Re: Bonjour

    Posté par . En réponse au message Traduction d'un programme C++ en C. Évalué à 1. Dernière modification le 30 décembre 2015 à 11:28.

    Oui, et c'est justement une bonne idée. Je pointe juste une erreur dans la mise en oeuvre qui fait que actuellement tu autorises un dépassement de 3 à 7 fois (sur x86 32 ou 64 bits) la taille du buffer au lieu de t'en prémunir...

    $ cat t.c ; gcc t.c; ./a.out
    #include <stdio.h>
    int main(void){
    char *pointeur;
    printf("sizeof(pointeur)=%d\n",sizeof(pointeur));
    printf("sizeof(*pointeur)=%d\n",sizeof(*pointeur));
    printf("sizeof(char)=%d\n",sizeof(char));
    return 0;
    }
    sizeof(pointeur)=8
    sizeof(*pointeur)=1
    sizeof(char)=1

    Là dans ton appel à fgets c'est comme si tu dis "je t'autorise à écrire dans un tampon qui a de la place pour 20 pointeurs", alors qu'en réalité ton tableau n'a de la place que pour 20 charactères.