[C]Pourquoi ce commentaire est faux ?

Stella -  
mamiemando Messages postés 33778 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

choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
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
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
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
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
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
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