Désallocation d'un pointeur de pointeur par une fonction.
Bonjour à tous. Pour commencer ce post sur la désallocation de pointeur de pointeur j'ai écrit cette structure:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| typedef struct avion{
int Num;
int max;
char depart[20];
char arrivee[20];
char Hdepart[6];
char Harrivee[6];
Passager *PS;
int NR;
Passager *PF;
struct avion *Suiv;
struct avion *Prec;
}Vol; |
J'ai préalablement fait plusieurs fonctions avec cette structure et à présent je voudrais faire un free des deux variables pointeurs PS et PF par cette fonction:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| void vider_passager (Passager **liste_p)
{
Passager *tmp;
tmp=*liste_p;
if ((*liste_p)->suiv==*liste_p)
{
free(liste_p);
}
else
{
while ((*liste_p)->suiv!=(*liste_p))
{
free(tmp);
*liste_p=(*liste_p)->suiv;
tmp=*liste_p;
}
free(liste_p);
}
} |
Je voudrais me resservir de cette fonction pour faire des free de PS et PF.
J'ai essayé:
Code:
1 2
| vider_passager ((&liste_v)->PS);
vider_passager ((&liste_v)->PF); |
mais j'ai le message:
Code:
1 2
| error: request for member 'PS' in something not a structure or union
error: request for member 'PF' in something not a structure or union |
Comment dois je faire pour régler ça svp ?