Signification de termes dans un langage C
Bonjour,
je suis en train de coder en java une liste doublement chaînée, et, pour m'aider, je désire m'inspirer d'un code que j'ai trouvé sur un site internet écrit en C:
Code:
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
| int supp(dl_Liste *liste, int pos){
int i;
dl_Element *supp_element,*courant;
if(liste->taille == 0)
return -1;
if(pos == 1){ /* suppresion de 1er élément */
supp_element = liste->debut;
liste->debut = liste->debut->suivant;
if(liste->debut == NULL)
liste->fin = NULL;
else
liste->debut->precedent == NULL;
}else if(pos == liste->taille){ /* suppression du dernier élément */
supp_element = liste->fin;
liste->fin->precedent->suivant = NULL;
liste->fin = liste->fin->precedent;
}else { /* suppression ailleurs */
courant = liste->debut;
for(i=1;i<pos;++i)
courant = courant->suivant;
supp_element = courant;
courant->precedent->suivant = courant->suivant;
courant->suivant->precedent = courant->precedent;
}
free(supp_element->donnee);
free(supp_element);
liste->taille--;
return 0;
} |
Mais voilà, je ne comprends pas certaines petites choses:
- que signifie: dl_Liste *liste? Je ne comprends pas l'étoile
- idem ici: dl_Element *supp_element,*courant
- que signifie: free(supp_element->donnee);
free(supp_element);
Je ne comprends pas le free.
En vous remerciant tous par avance et en vous souhaitant un agréable lundi.
Johnny3