Bonjour à tous !
Après avoir essayé plusieurs formulations (de plus en plus "foireuses", je dois le reconnaitre), je me décide à venir demander de l'aide ici même.
Je suis en 1e année d'IUT informatique, et nous avons un projet à faire en C. Jusque là, rien de bien surprenant.
Ce qui me bloque vient d'un sous-programme à priori tout bête, mais je n'arrive pas à voir d'où vient mon erreur.
Voici donc le code qui me pose problème :
Code :
- #define K_NBCASES 25
- //Les deux définitions de structures :
- typedef struct
- {
- int coordX;
- int coordY;
- int contenu;
- }Tcase;
- typedef struct
- {
- Tcase cellule;
- }Tdamier;
- //La fonction qui me pose problème :
- Tdamier initDamier(void)
- {
- int i,j;
- Tdamier damier[K_NBCASES][K_NBCASES];
- for(i=0;i<K_NBCASES;i++)
- {
- for(j=0;j<K_NBCASES;j++)
- {
- damier[i][j].cellule.coordX=i;
- damier[i][j].cellule.coordY=j;
- damier[i][j].cellule.contenu=0;
- }
- }
- return damier;
- }
- // L'appel dans le main :
- damier=initDamier();
|
Le but de la fonction est donc d'initialiser un damier, représenté par une matrice, puis de le retourner et de le récupérer dans une variable adaptée dans le main.
Lors de la compilation, j'ai le message d'erreur suivant (sous Code::Blocks) : "error : incompatible types in return".
Pourtant, on traite bien une structure Tdamier, et on la retourne. J'ai donc beau me creuser la tête, je ne vois pas d'où vient l'erreur. N'ayant jamais manipulé de matrices avant, cela vient probablement de là...
Help !
Et merci de m'avoir lu.