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
7554
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
13 août 2018
451
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
7554
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
13 août 2018
451
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 565 > 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 565
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 565
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