Empiler une matrice

Fermé
Kurogane1 - Modifié par Kurogane1 le 8/01/2012 à 22:55
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 10 janv. 2012 à 03:13
Bonjour,

J'ai un tableau de tableau et je cherche à l'empiler dans une pile.

J'ai ça :


typedef struct ech {
int echi[8][8];
} ech_t;


Puis j'ai ça :


ech_t echi_temp;
echi_temp.echi=echiquier;
empiler_echiquier(&pile_ech,echi_temp);


Puis j'ai ça :


int echiquier[8][8];

Quand je compile ça me mets cette erreur :

incompatible types when assigning to type 'int[8][8]' from type 'int (*)[8]'

Si je change ma structure en :
typedef struct ech {
int *echi[8];
} ech_t;


Alors j'ai plutôt cette erreur : incompatible types when assigning to type 'int *[8]' from type 'int (*)[8]'|

Ne me demandez pas de redéfinir echiquier, car je me suis servi dans 5-6 pages de code et je ne peux pas tout remodifier donc. Comment faire pour empiler une matrice ?

Et qu'est ce que ça veut dire les () dans le type : 'int (*)[8]'. Car apparemment ce n'est pas la même chose que int *[8].

Merci d'avance pour vos réponses.

1 réponse

Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
10 janv. 2012 à 03:13
Bonjour, ça ne vient pas de la structure mais du double tableau et la façon donc vous l'utilisez echi_temp.echi=echiquier;
faites une copie du contenu à la place avec memcpy
memcpy(echi_temp.echi,echiquier,sizeof(int)*(8*8));
0