Pb chaine de caractères ds liste chainée en C
Fermé
cyberlulu
-
30 déc. 2004 à 15:41
maily
maily
- Messages postés
- 7554
- Date d'inscription
- lundi 26 juin 2000
- Statut
- Contributeur
- Dernière intervention
- 13 août 2018
A voir également:
- Pb chaine de caractères ds liste chainée en C
- Extraire une chaine de caractère ds Excell ✓ - Forum - Bases de données
- Remplacer chaîne de caractères ds un fichier ✓ - Forum - Linux / Unix
- Supprimer un caractere ds une chaine en java ✓ - Forum - Java
- Identifier chaîne de caractère à partir d'une liste de référence ✓ - Forum - Excel
- Comment insérer un caractère ds une chaine ✓ - Forum - Programmation
1 réponse
maily
30 déc. 2004 à 15:47
- Messages postés
- 7554
- Date d'inscription
- lundi 26 juin 2000
- Statut
- Contributeur
- Dernière intervention
- 13 août 2018
30 déc. 2004 à 15:47
Bonjour!
Euh, tu copies une chaine de caractère dans UN caractère? C'est de là d'où vient le problème!
et après:
Maily :-))))
ragondin, va au coin!
Euh, tu copies une chaine de caractère dans UN caractère? C'est de là d'où vient le problème!
typedef struct elem {char * valeur; struct elem * suivant; } element;
et après:
l=(element*)malloc(sizeof(element)); l = (char*) malloc (sizeof(nb)); strcpy(&l->valeur,nb); l->suivant=NULL;
Maily :-))))
ragondin, va au coin!
30 déc. 2004 à 15:55
mais je ne comprends pas trop pourquoi il faut faire comme ca...
déjà, pourquoi il faut mettre
typedef struct elem {char * valeur;
ca veut dire que le champ valeur est un pointeur sur un caractère ?? pourtant la valeur c'est un caractère, nan ?et puis pourquoi on fait ca si on a déjà mis . comment ca se fait que l'on fait deux fois malloc et qu'on enregistre dans l ?
30 déc. 2004 à 16:10
30 déc. 2004 à 16:26
l->valeur=(char*)malloc(sizeof(nb))
En fait, là, tu donnes à ta valeur, la taille de ton tableau!
Le char * veut dire que tu crée un pointeur sur un caractère! En faisant un malloc derrière de la taille de ton nb, par exemple, c'est comme si tu créais un tableau de caractères! Sauf que c'est dynamique...
Si tu ne mets pas char * valeur, et bien, cela veut dire que quoiqu'il se passe, ta valeur sera toujours un seul caractère. Un char * valeur permet de dire que ça peut être un ou plusieurs caractères...
En fait, regarde un cour sur les chaines de caractères en c, tu comprendras mieux parce que je ne pense pas bien l'expliquer! :( désolée...
Maily :-))))
ragondin, va au coin!
30 déc. 2004 à 16:37
30 déc. 2004 à 17:03
De rien!
Maily :-))))
ragondin, va au coin!