Bonjour à tous
Voila, je suis confronté à un petit problème lors d'un développement d'un jeu d'échecs en C :
Voici le code du programme principal (programme test) :
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include "TADListeCasesEnnemies.h"
- #include "TADEchiquier.h"
- #include "TADCase.h"
- int main(argc,argv)
- {
- LST* listeEnnemie; /* Ici on déclare listeEnnemie comme étant un pointeur */
- ECQ** chess;
- Couleur color;
- listeEnnemie = LST_listeCasesEnnemies(chess,color); /* ######## Ici l'erreur : Assignment makes pointer from integer without a cast ######### */
- }
|
Voici une partie de TADListeCasesEnnemie.h
Code :
- /**
- * \struct LST
- * \brief liste de cases
- */
- typedef struct{
- int nbCases;
- CASE *tableauDeCases; /* Ici on peut ne pas définir de taille si on malloc après ? ou faut faire CASE *tableauDeCases[16] ? */
- }LST;
|
Le code de TADListeCasesEnnemies.c avec le créateur de la liste :
Code :
- LST* LST_listeCasesEnnemies(ECQ** chess,Couleur joueur){
- Ligne l;
- int i,nbCases, c;
- COOR* coordTmp;
- CASE* caseTmp;
- LST* casesEnnemies;
- casesEnnemies=(LST*)malloc(sizeof(LST));
- casesEnnemies->tableauDeCases=(CASE*)malloc(16*sizeof(CASE));
- fixerNbCasesEnnemies(casesEnnemies,0);
- i=0;
- for(l=0 ; l<=7 ; l++){
- for(c=0 ; c<=7 ; c++){
- coordTmp = COOR_creerCoordonnees(l,(Colonne)c);
- caseTmp = CASE_creerCase(coordTmp);
- if(CASE_estVide(caseTmp)==FAUX){
- if(PIECE_obtenirCouleur(CASE_obtenirPiece(caseTmp))!=joueur){
- fixerNbCasesEnnemies(casesEnnemies,LST_obtenirNbCasesEnnemies(casesEnnemies)+1);
- casesEnnemies->tableauDeCases[i]=*caseTmp;
- i++;
- }
- }
- }
- }
- return casesEnnemies; /* Ici normalement on renvoie bien un LST* non ? */
- }
|
Ce code me renvoie :
Code :
- testListe.c:11: attention : assignment makes pointer from integer without a cast
|
J'avoue ne plus rien comprendre, j'essaye des grands coups d'* et de & dans tous les sens (je ne suis pas un spécialiste des pointeurs ) et je commence à devenir fou
Alors si quelqu'un avait un peu de temps pour m'aider à comprendre où est mon erreur ce serait super
Merci d'avance et bonne soirée
Message édité par Mister_Pingouin76 le 12-01-2008 à 00:42:17