bonjour,
j'ai un problème pas évident: j'ai une structure qui contient une matrice de string.
l'allocation en memoire fonctionne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 typedef struct plateau2d plateau2d; struct plateau2d { int taille_carre; int largeur; int hauteur; char*** plateau; };
et l'initialisation de cette matrice fonctionne aussi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 jeu.plateau= (char***) malloc(sizeof(char**) * nbr_carre_largeur ); for (i=0; i < nbr_carre_largeur ;i++) jeu.plateau[i] = (char**) malloc(sizeof(char[TAILLE_MAX]) * nbr_carre_hauteur);
par contre si je fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void init_plateau ( plateau2d jeu ) { int i,j; for(i=0;i < jeu.largeur ; i++) { for(j=0; j < jeu.hauteur ; j++) { jeu.plateau[i][j] = "mur.jpg"; } } }
ou meme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char* chaine = "texte"; strcpy(*jeu.plateau[0][0],chaine);
le programme compile mais plante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part strcpy(*jeu.plateau[0][0],"chaine");
donc pour résumer :
Quelqu'un a une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 jeu.plateau[0][0]="chaine"; // ca ca marche strcpy(jeu.plateau[0][0],"chaine"); // ca ca marche po
edit: je viens de trouvé quelque chose qui fonctionne:
aussi bizare que ca puisse paraitre :
jeu.plateau[i][j] = chaine; // ca fonctionne
je ne savais pas que les assignations sur les strings fonctionnait (a moins qu'il ne s'agit que du pointeur).
edit2: c'est bien ce qu'il me semblait: l'assignation se fait sur les pointeurs donc ca ne va pas.
par contre :
strcpy(chaine2,chaine); // ca ca marche
donc je bute vraiement la dessus :
strcpy(jeu.plateau[0][0],chaine); // ca ca marche pas
Partager