Liste chainée en C !

Fermé
cyberlulu - 28 déc. 2004 à 16:52
 dark - 30 mars 2012 à 21:53
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.
@+

4 réponses

maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
28 déc. 2004 à 16:59
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
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 lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
28 déc. 2004 à 17:15
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
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567 > reza
12 juin 2007 à 09:30
Salut,

si depuis 2004 il n'a toujours pas compris alors c'est grava :-DD
0
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
2 nov. 2007 à 19:55
Salut,

ça pourra peut être t'aider à comprendre
liste simplement chaînée
liste doublement chaînée
1
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 lundi 20 novembre 2006 Statut Membre Dernière intervention 16 décembre 2006
29 nov. 2006 à 15:52
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 nov. 2006 à 16:20
Salut,

Regarde ici Tutoriels sur le langage C

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