Bonjour tout le monde,

je suis en train de faire une fonction qui a pour but de charger des informations contenues dans un fichier dans un tableau de pointeurs.
Voila la forme du fichier :
ALBERT Rachel 16.5
BENOIT Alexis 8
DURAND Pierre 18
LAURENT Charles 10
J'ai donc fait ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
typedef struct
{
	char nom[50], prenom[50];
	float moyenne;
} Etudiant;
 
 
int chargeTPointEtud(Etudiant *tpetud[], int nbmax)
{
	FILE *fichier = NULL;
	Etudiant *etud;
	int i=1;
 
	fichier = fopen("etudalpha.don", "r");
	if (fichier == NULL)
		exit(1);
 
	etud = (Etudiant*) malloc(nbmax * sizeof(Etudiant));
 
	fscanf(fichier, "%s%s%f", etud[0]->nom, etud[0]->prenom, &etud[0]->moyenne);
	tpetud[0] = etud[0];
 
	while (feof(fichier) == 0)
	{
		fscanf(fichier, "%s%s%f", etud[i]->nom, etud[i]->prenom, &etud[i]->moyenne);
		tpetud[i] = etud[i];
		i++;
	}
 
	fclose(fichier);
 
	return i;
}
Et là je rencontre plusieurs problèmes :
1) le compilateur me dit : invalid type argument of `->'
J'ai donc remplacé le symbole -> par le symbole .
Ca enlève l'erreur, mais je comprends pas pourquoi : étant donné que etud[0] contient une adresse, on doit mettre la flèche non ?

2) après avoir remplacé les flêches par les points, j'ai une autre erreur : incompatible types in assignment
pour ces lignes :
et
la non plus je ne comprends pas : tpetud[0] attends une adresse (puisque c'est un tableau de pointeur) et etud[0] est l'adresse de ma structure (si je me souvient bien)


merci d'avance pour vos éclaircissements