Bonjour tout le monde.
Je commence le C et j'ai le problème suivant que je ne comprend pa :

J'ai une structure uneCase dans mon fichier uneCase.c, ainsi qu'une méthode qui permet de construire une structure et qui me renvoit un pointeur dessus :
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
 
#include <stdio.h>
#include <stdlib.h>
 
typedef struct   {
	double largeurCase;
	double hauteurCase;
	int occupee; //1 = il y a deja un cochon ou le gpl sur la case. 0 sinon.
	int condamnee;//1 = la case est un trou beant. 0 sinon;
	int indiceX, //permet de savoir ou se situe la case dans la grille.
		indiceY;
	double x, y; //abscisse et ordonnee de la case pour la representation graphique
}uneCase;
 
 
uneCase *initUneCase(double l,double h,int o,int c,int x,int y, double posx, double posy){
	uneCase *ca= malloc(sizeof(uneCase));
	ca->largeurCase=l;
	ca->hauteurCase=h;
	ca->occupee=o;
	ca->condamnee=c;
	ca->indiceX=x;
	ca->indiceY=y;
	ca->x=posx;
	ca->y=posy;
	return ca;
}
je fais un fichier test tout bete ou je créé une structure uneCase :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
#include <stdlib.h>
#include <stdio.h>
#include "uneCase.h"
 
int main(void){
 
	uneCase *maCase;
	maCase = NULL;
	maCase = initUneCase(20,20,0,0,0,0,0,0);
	printf("occcupee : %d\n", maCase->occupee);
	return 0;
}
malheureusement j'ai à la compilation de mon fichier test.c l'erreure suivante :

'struct <anonymous>' has no member named 'occupee' !

alors que si je fais le test dans mon fichier uneCase.c cela marche :

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
35
36
 
#include <stdio.h>
#include <stdlib.h>
 
typedef struct   {
	double largeurCase;
	double hauteurCase;
	int occupee; //1 = il y a deja un cochon ou le gpl sur la case. 0 sinon.
	int condamnee;//1 = la case est un trou beant. 0 sinon;
	int indiceX, //permet de savoir ou se situe la case dans la grille.
		indiceY;
	double x, y; //abscisse et ordonnee de la case pour la representation graphique
}uneCase;
 
 
uneCase *initUneCase(double l,double h,int o,int c,int x,int y, double posx, double posy){
	uneCase *ca= malloc(sizeof(uneCase));
	ca->largeurCase=l;
	ca->hauteurCase=h;
	ca->occupee=o;
	ca->condamnee=c;
	ca->indiceX=x;
	ca->indiceY=y;
	ca->x=posx;
	ca->y=posy;
	return ca;
}
 
int main(void){
	uneCase* maCase=NULL;
	maCase= initUneCase(20,20,0,0,0,0,0,0);
	printf("occcupé : %d\n", maCase->occupee);
	maCase->occupee=1;
	printf("occcupé : %i\n",maCase->occupee); 
	return 0;
}
Je ne comprend pas l'érreure et comme je dois faire une programmation modulaire, je suis coincé...
merci de m'aider !