Bonjour,
J'essaie de comprendre le fonctionnement des listes chainées simple.
J'ai fait un petit bout de code pour tester, mais ça marche pas vraiment.
En fait lorsque je veux afficher le contenue de la liste seul les 2 dernières entrées sont affichées.
Je stocke: 10 puis 20 puis 30 puis 40 puis 50
et en affichage j'ai 50 40 0
Quelque chose m'échappe mais j'arrive pas à comprendre. Un petit coup de mains serait le bienvenue
voici mon code
en sortie j'obtiens :
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 #include <stdlib.h> #include <string.h> #include <stdio.h> typedef struct sData { /*la structure */ int dc; struct sData *next; } sData, *psData; psData addsData(psData tete,int dc) { /* fonction d'ajout */ psData pt; pt=(psData)malloc(sizeof(psData)); pt->next=tete; pt->dc=dc; return pt; } int main(int argc, char **argv) { psData courent=NULL; int dc = 10; courent = addsData(courent,dc); dc = 20; courent = addsData(courent,dc); dc = 30; courent = addsData(courent,dc); dc = 40; courent = addsData(courent,dc); dc = 50; courent = addsData(courent,dc); while (courent !=NULL) { printf(" dc :%d\n",courent->dc); courent = courent->next; } return 0; }
j'image que je perd un pointeur quelque part mais je ne comprend pas pourquoi cela marche pour 2 entrée puis ensuite plus rien......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 dc :50 dc :40 dc :0
Merci
Partager