Bonjour,
j'ai un petit soucis dans un programme, j'ai une liste chainée et je dois la parcourir a un moment pour supprimé des maillions.
voila ma structure et ma liste chainnée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 typedef struct s_block { wchar_t **line; struct s_block *nxt; } t_block; typedef struct s_data { char *path; char **flag; t_block *block; } t_data;
Voila ma fonction de parcours.
voila la fonction qui supprime
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 int save(t_data *data) { t_block *tmp; int flag; int indice = 0; tmp = data->block; while (tmp != NULL) { if (delete_this(tmp->line) == 1) { delete_block(data, indice); } tmp = tmp->nxt; indice++; } return 1; }
je ne comprend d'ou vien le probleme, pouvez vous m'aider ?
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 int delete_block(t_data *data, int indice) { t_block *tmp; t_block *tmp_old = NULL; int i = 0; tmp = data->block; while (tmp != NULL) { if (i == indice) { if (tmp == data->block) { //on free data->block = tmp->nxt; } else if (tmp->nxt == NULL) { //on free tmp_old->nxt = NULL; /* tmp = tmp_old; */ /* tmp->nxt = NULL; */ } else { tmp_old->nxt = tmp->nxt; //on free } return 1; } tmp_old = tmp; tmp = tmp->nxt; indice++; } return 1; }
ma fonction supprime mal.
Partager