Modifier valeur d'un char **
Résolu
Bonjour,
Je suis en train de réaliser un petit projet pour mon école mais ça fait un bout de temps que je galère sur une bêtise (du moins je l'espère).
alors voilà, imaginons que j'ai ça :
ici je souhaiterai modifier par exemple la valeur de du charactère 'b', donc naturellement j'essai de faire map[0][1] = 'x'; sauf que ici je me mange une erreur de segmentation ..
Avez vous déjà rencontrer cette problématique ?
Merci d'avance !
Je suis en train de réaliser un petit projet pour mon école mais ça fait un bout de temps que je galère sur une bêtise (du moins je l'espère).
alors voilà, imaginons que j'ai ça :
int main()
{
char **map;
map = malloc(sizeof(char *) *2);
map[0] = "abc";
map[1] = "def";
}
ici je souhaiterai modifier par exemple la valeur de du charactère 'b', donc naturellement j'essai de faire map[0][1] = 'x'; sauf que ici je me mange une erreur de segmentation ..
Avez vous déjà rencontrer cette problématique ?
Merci d'avance !
1 réponse
-
Bonjour,
Tu veux créer un tableau de tableaux.
Il faut allouer le tableau, mais aussi chacune des lignes!
int main() { char **map; map = malloc(sizeof(char *) *2); for ( int i = 0 ; i < 2 ; ++i ) { map[i] = malloc( sizeof(char) * 4 ); // pour 3 caracteres + 1 terminateur } strcpy( map[0] , "abc" ); strcpy( map[1] , "def" ); map[0][1] = 'x'; }