Bonjour,
J'ai une question sur le programme suivant :
le type utilisé est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
typedef struct element {int valeur;struct element *lien;} Element;
typedef Element *Liste;
et
le type de la fonction estListeVide est:
Booleen estListeVide (Liste)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
void viderListe ( Liste *pListe ) {
 
  if ( !estListeVide ( *pListe ) ) {
    viderListe ( &((*pListe)->lien) );
    free ( *pListe );
    *pListe = NULL;
  }  
}
Quel est l'intérêt de faire free (*pliste). Sans le free ça marcherait ?

Et aussi: pourquoi utiliser & puisque (*pListe)->lien est bien de type Liste *comme l'argument de viderListe....? (&((*pliste)->lien) est de type Liste)


Merci!