Pour modifier la structure pivot dans la fonction procedure_bfs, il faut lui passer l'adresse la structure, et non pas une copie de la structure, ce qui est fait dans le code.
L'appel devient donc
1 2
| if(pivot.marque == 0){
procedure_bfs(&pivot, file); |
La fonction procedure_bfs devient dès lors
void procedure_bfs (sommet *pivot, File * file)
Pour adresser les membres de pivot dans la fonction, cela devient par exemple
Ceci a pour effet de modier l'élement marque, qui est le même que celui connu par la fonction appelante.
Attention toutefois: pivot est utilisé à de nombreux endroits dans cette fonction, il faut donc modifier toutes les lignes de code qui se rapportent à lui.
Quid, par exemple, de
res_file = enfiler(file, pivot);
enfiler s'attend à recevoir une variable de type sommet, pas sommet *. Soit il faut modifier la fonction enfiler, soit il faut l'appeler par
res_file = enfiler(file, *pivot);
si enfiler n'a as besoin de modifier des élements de pivot.
Partager