Liste chainée en C !

cyberlulu -  
 dark -
Salut !
j'ai un pb au niveau des listes chainées. j'ai déclaré la structure et l'élément liste comme ca :
typedef struct elem {char valeur;
                                          struct elem * suivant;
                                       } element;

typedef element * liste;


jusque là, il n'y a pas de pb, tt fonctionne.
après, je veux un tableau de liste donc j'ai écrit :

liste tableau[10];
tableau[0]->valeur="a";
tableau[0]->suivant=NULL;


et ainsi de suite jusqu'à 10. le problème qui se pose c'est au niveau de : tableau[0]->valeur="a";
tableau[0]->suivant=NULL;
je ne sais pas ce qui ne fonctionne pas... si qqun sait le problème qu'il y a, merci de me l'expliquer.
@+
A voir également:

4 réponses

maily Messages postés 7556 Date d'inscription   Statut Contributeur Dernière intervention   453
 
Bonjour!!

Tu essayes de mettre une chaine de caractères dans un caractères!
Il faut que tu utilises les ' pas les ".

Sinon, je pense que ça ne marchera pas parceque tu n'alloue pas la place qu'il faut!
Pour chaque case de ton tableau, il faut que tu fasses un malloc!! ;-)
Je ne me souviens plus de la syntaxe exacte, mais c'est un truc comme ça:
for (int i=0; i<10; i++){
         tableau[i]= malloc (sizeof( element));
}


Maily :-))))
ragondin, va au coin!
2
cyberlulu
 
ok merci bcp
effectivement, c'est le malloc qu'il fallait faire. j'avais pas alloué de place... faut dire j'ai un peu du mal avec ca. je croyais qu'en déclarant liste tableau[10], c'était bon...
0
maily Messages postés 7556 Date d'inscription   Statut Contributeur Dernière intervention   453
 
et non!! Malheureusement!
En java oui... Le problème du C, c'est que tu dois tout allouer et tout désallouer si tu veux que tes programmes soient optimaux!


Maily :-))))
ragondin, va au coin!
0
reza
 
non mec ça c'est pas ton probleme un tableau statique n'as pas besoin d'allouer la mémoire c'est fait automatique par le compilateur.quand tu déclare un tableau dynamique(char *t;),la il faut que tu alloue la mémoire(par exemple:*t=(char*)malloc(20*sizeof(char))on a alloué la mémoire pour 20 caractère.mais la ton problème vient du faite que tu as utilisé " au lieu de ça '.
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570 > reza
 
Salut,

si depuis 2004 il n'a toujours pas compris alors c'est grava :-DD
0
yassine
 
t'a raison mon reza mais je crois que le problème est dans les "! on doit utiliser les '
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

ça pourra peut être t'aider à comprendre
liste simplement chaînée
liste doublement chaînée
1
sweety
 
Bonjour, moi j'arrive pas a comprendre les poiteurs je trouve pas pas un cours bien detailé,meme pb avec les listes,les files,les piles et les arbres
0
saada Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
bonne journe a tous les amis ,je cherche un cours des listes chainées et les piles et les files en langage C.
et merci ...
-1
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Regarde ici Tutoriels sur le langage C

lami20j
0
dark
 
ta mis deux nom a une seule structure elem et element!!
0