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 :
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
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; }
malheureusement j'ai à la compilation de mon fichier test.c l'erreure suivante :
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; }
'struct <anonymous>' has no member named 'occupee' !
alors que si je fais le test dans mon fichier uneCase.c cela marche :
Je ne comprend pas l'érreure et comme je dois faire une programmation modulaire, je suis coincé...
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; }
merci de m'aider !
Partager