Bonjour,
j'ai un long tme sur les listes chainées 'que j'ai l'impression d'avoir bine compris) cependant lors de l'exécution de mes deux fonctions de base je beug deja. Voici mon code :
Lors de l'exécution ma machine me renvoie seulement 0 ou 0 1 2 3 4 0 quand je met le printf. Je sais que je realloue de la mémoire avec ma fonction creercellule alors que le tmp en a deja une avec la tmp=liste mais je ne pense pas que cela dérange l'exécution. Ca fait bien 2h que je bloque sur ca alors que le reste de mes fonctions bien plus compliqués fonctionnent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 typedef struct cellule_t cellule_t; struct cellule_t{ int donnee; cellule_t *suivant; }; cellule_t *creercellule(int donnee){ cellule_t *liste=malloc(sizeof(cellule_t)); liste->donnee=donnee; liste->suivant=NULL; return liste; } void affiche_liste(cellule_t *liste){ cellule_t *tmp = NULL; tmp=liste; while (tmp){ printf("%d\t",tmp->donnee); tmp=tmp->suivant; } printf("\n"); } cellule_t *test_liste(){ int i=0; cellule_t *liste = malloc(sizeof(cellule_t)); cellule_t *tmp = NULL; tmp=liste; for(;i<5;i++){ tmp=creercellule(i); (((printf("%d\t",tmp->donnee);)))) pour bien vérifier que les donnee sont créer tmp=tmp->suivant; } return liste; } int main(){ cellule_t *liste=test_liste(); affiche_liste(liste); return 0; }
Merci de vos réponses.
Partager