Empiler une matrice

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

  1. 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));