Programmer en langage C
202
© Éditions Eyrolles
Ici, nous avons décidé de faire effectuer la création de la liste par une fonction. Le programme
principal se contente de réserver l’emplacement d’un pointeur destiné à désigner le premier
élément de la liste. Sa valeur effective sera fournie par la fonction creation. Dans ces
conditions, il est nécessaire que le programme principal lui fournisse, non pas la valeur,
mais l’adresse de ce pointeur (du moins si l’on souhaite pouvoir disposer ultérieurement de
cette valeur au sein du programme principal).
C’est ce qui justifie la forme de l’en-tête de la fonction creation :
void creation (struct element * * adeb)
dans laquelle adeb est effectivement du type « pointeur sur un pointeur sur un élément de type
struct element ».
Création d’une liste chaînée
#include
#include
struct element { int num ;
float x ;
float y ;
struct element * suivant ;
} ;
void creation (struct element * * adeb) ;
main()
{
struct element * debut ;
creation (&debut) ;
}
void creation (struct element * * adeb)
{
int num ;
float x, y ;
struct element * courant ;
* adeb = NULL ;
while ( printf("numéro x y : "),
scanf ("%d %f %f", &num, &x, &y), num)
{ courant = (struct element *) malloc (sizeof(struct element)) ;
courant -> num
= num ;
courant -> x
= x ;
courant -> y
= y ;
courant -> suivant = * adeb ;
* adeb = courant ;
}
}
Delannoy Livre.book Page 202 Mercredi, 6. mai 2009 4:26 16
Précédent

- 215/281

Suivant