bonjour,
J'ai un soucis lorsque je dois ajouter un element à une liste un peu complexe. Voici mes structures :
La structure printhead permet de chainer des éléments printhead comme elle mais contient un pointeur vers une structure reader_send_list. La structure reader_send_list est aussi une liste et je n'arrive pas à ajouter une élément à cette chaine au travers du pointeur vers la structure printhead.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 struct reader_send_list{ struct shm_data *data; /**< pointer to the first shm_data of the current list */ struct reader_send_list *next; /**< pointer to the next list */ }; struct reader_printhead{ uint8_t ph_id; struct reader_send_list *next_frame; /**< pointer to the next frame to send list */ struct reader_printhead *next_printhead; /**< pointer to the next printhead */ };
et lorsque j'appelle ma fonction :
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 extern void reader_append_send_list(struct reader_printhead *p_printhead) { struct reader_send_list *p_new_send_list = malloc(sizeof *p_new_send_list); if((p_printhead->next_frame != NULL) && (p_new_send_list != NULL)) { p_new_send_list->data = NULL; p_new_send_list->next = NULL; struct reader_send_list *current_list = p_printhead->next_frame; while(current_list != NULL) { printf("current_list=%p\n",current_list); current_list = current_list->next; } printf(" NULL = current_list=%p\n",current_list); current_list = p_new_send_list; printf("current_list=%p\n",current_list); } }
Je précise que lors de l'initialisation de la structure printhead, le pointeur next_frame ne pointe pas vers null mais est attaché a une struct reader_send_list. mais je ne comprend pas mon erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 printf("t_ph[0]->next_frame->next = %p\n",t_ph[0]->next_frame->next); reader_append_send_list(t_ph[0]); printf("t_ph[0]->next_frame->next = %p\n",t_ph[0]->next_frame->next);
merci de votre aide
Partager