Modifier valeur d'un char **
Résolu
Nerethim
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
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 !
A voir également:
- Char**
- Coco char - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Convertir char en int c ✓ - Forum C
- Char(10) excel francais ✓ - Forum Excel
- [C]- convertir char en int ✓ - Forum C
1 réponse
Bonjour,
Tu veux créer un tableau de tableaux.
Il faut allouer le tableau, mais aussi chacune des lignes!
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'; }
Nerethim
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
Merci infiniment ! :)
fiddy
Messages postés
11069
Date d'inscription
Statut
Contributeur
Dernière intervention
1 846
A noter, que le bon prototype est : int main(void), qu'il ne faut pas oublier le return 0; final et qu'il faut penser à utiliser free() pour libérer les ressources allouées avant la fin du programme.