Bonsoir, j'ai realise un petit code de rappel avec les listes chainnees, et il y a un detail que je ne comprends pas (voir les commentaires sur le code)
Merci bien ! Bonne soiree
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 void aff_list(t_data *list) { while (list != NULL) { my_putchar((list->c)); list = list->next; } } void delete_data(t_data **list) { t_data *epur; while (*list != NULL) { epur = *list; *list = (*list)->next; free(epur); } } void readd_data(t_data *list) { t_data *readd; readd = malloc(sizeof(*readd)); readd->c = 'Z'; readd->next = NULL; if (list == NULL) list = readd; else list->next = readd; } void add_data(t_data *list) { t_data *add; add = malloc(sizeof(*add)); add->c = 'A'; add->next = NULL; if (list == NULL) list = add; else list->next = add; } int main(int ac, char **av) { t_data *list; list = NULL; list = malloc(sizeof(*list)); /*pourquoi cette ligne n'est pas utile ? Le malloc se fait grace a t_data *add ?*/ add_data(list); /*Pourquoi si je n'envoie pas l'adresse (&list) ca ne fonctionnera pas (le 'A' ne s'ajoute pas), alors que je fais exactement la mm chose en dessous et ca fontionne (le 'Z' s'ajoute)*/ readd_data(list); aff_list(list); delete_data(&list); aff_list(list); return (0); }
Partager