[C]Pourquoi ce commentaire est faux ?

Fermé
Stella - 2 août 2006 à 08:14
mamiemando Messages postés 33535 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 février 2025 - 2 août 2006 à 17:37
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 39420 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 26 janvier 2025 2 104
2 août 2006 à 08:49
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 33535 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 février 2025 7 828
2 août 2006 à 09:24
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
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 33535 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 février 2025 7 828
2 août 2006 à 17:37
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