probleme avec une structure.
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:
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:
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:
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 !