© Éditions Eyrolles
175
chapitre n° 9
Les structures et les énumérations
Naturellement, les valeurs de la structure x sont recopiées localement dans la fonction fct
lors de son appel ; les modifications de s au sein de fct n’ont aucune incidence sur les valeurs
de x.
6.2 Transmission de l’adresse d’une structure : l’opérateur ->
Cherchons à modifier notre précédent programme pour que la fonction fct reçoive effectivement l’adresse d’une structure et non plus sa valeur. L’appel de fct devra donc se présenter
sous la forme :
fct (&x) ;
Cela signifie que son en-tête sera de la forme :
void fct (struct enreg * ads) ;
Transmission en argument des valeurs d’une structure
#include
struct enreg { int a ;
float b ;
} ;
main()
{
struct enreg x ;
void fct (struct enreg y) ;
x.a = 1; x.b = 12.5;
printf ("\navant appel fct : %d %e",x.a,x.b);
fct (x) ;
printf ("\nau retour dans main : %d %e", x.a, x.b);
}
void fct (struct enreg s)
{
s.a = 0; s.b=1;
printf ("\ndans fct : %d %e", s.a, s.b);
}
avant appel fct : 1 1.25000e+01
dans fct : 0 1.00000e+00
au retour dans main : 1 1.25000e+01
Delannoy Livre.book Page 175 Mercredi, 6. mai 2009 4:26 16
Précédent

- 188/281

Suivant