[C]Pourquoi ce commentaire est faux ?

Stella -  
mamiemando Messages postés 33173 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

est-ce que quelqu'un pourrait m'expliquer pourquoi ce commentaire est faux ?

/*Write 6 integers to a disk file*/
void put_rec(int rec[6], FILE *fp)
{
  int len;
  len = fwrite(rec, sizeof rec, 1, fp);
  if(len != 1) printf("write error");
}


Merci

3 réponses

  1. choubaka Messages postés 5535 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    salut

    le problème ne vient-il pas de là ??

    if(len != 1) printf("write error");


    vu que la longueur sera d'office différente de "1", il y aura erreur ...
    0
  2. mamiemando Messages postés 33173 Date d'inscription   Statut Modérateur Dernière intervention   7 945
     
    Il faut surtout corriger cette ligne :
    len = fwrite(rec,sizeof(int),6, fp);

    Tu devrait mettre un retour à la ligne à la fin du message d'erreur
    if(len!=6) printf("write error\n");

    Bonne chance
    0
    1. Stella
       
      En parametre de la fonction, on a un
      int rec[6]
      donc
      sizeof(rec)
      est censé donné 6*taille d'un int
      la ligne :
      len = fwrite(rec, sizeof(rec), 1, fp);

      devrait donc écrire dans fp 1 bloc de 6 entiers.

      Je ne comprends pas très bien pourquoi vous modifier complètement le fwrite de l'énoncé et aussi pourquoi le commentaire est faux
      Si quelqu'un pouvait m'expliquer ?
      0
  3. mamiemando Messages postés 33173 Date d'inscription   Statut Modérateur Dernière intervention   7 945
     
    Pour moi sizeof prend un paramètre un type et pas une variable. Le commentaire est juste je ne sais pas ce qui te fait dire qu'il est faux. Par ailleurs je suppose que tu n'as pas mis tout ton programme car il n'y a pas de main. Si tu ne l'as pas encore écrit il faut le faire...

    Bonne chance
    0