Erreur de compilation [help]

radagast35 Messages postés 2 Statut Membre -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Slt,
je rencontre une erreur de compilation en C, pouvez vous m'aider SVP???

typedef
struct
{
char Nom [26];
char GrTP;
char GrTD;
float Note;
}
TEtudiant;

void ChargerTab (TEtudiant pEtu, int pNb, FILE * pDesc)
{
fread (&pEtu[pNb], sizeof (TEtudiant), 1, pDesc);
while (!feof(pDesc))
{
++pNb;
fread (&pEtu[pNb], sizeof (TEtudiant), 1, pDesc);
}//while
fclose (pDesc);
}//ChargerTab

Erreur:
TP1_3.cpp: In function `void ChargerTab(TEtudiant, int, FILE*)':
TP1_3.cpp:54: no match for `TEtudiant& [int&]' operator
TP1_3.cpp:58: no match for `TEtudiant& [int&]' operator

Pitié je désespère!!!! HELP ME!!!

1 réponse

Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
&pEtu[pNb] !!!!
Houla que c'est moche !
Dans ta fonction ChargerTab tu passe la première variable par copie. Donc même si ça compilait, je doute fort que ton programme ferai ce que tu veux, si tu t'en tire par hasard sans erreur de mémoire.
Si tu veu passser un tableau de TEtudiant il faut faire :
void ChargerTab (TEtudiant[] pEtu, int pNb, FILE * pDesc)
ou void ChargerTab (TEtudiant* pEtu, int pNb, FILE * pDesc).
ce que tu fait peu marcher à condition que tu mette void ChargerTab (TEtudiant& pEtu, int pNb, FILE * pDesc) Mais je ne te le conseil pas.
Je ne sais pas si ta fonction est complete, mais ATTENTION à l'allocation mémoire ! tu ne connait pas a priori la taille qui va être lu.
Si &pEtu[Np] ne fonctionne pas, c'est peut être aussi à cause de la précéance des opérateur, (&pEtu)[Np] fonctionnerai peut être.
0