Une fonction reçoit une mesure, la double, et affiche le résultat. L'appelant affiche ensuite sa propre variable, et les deux valeurs diffèrent.
Objectif
Prévoir chacune des deux valeurs affichées, puis celle obtenue après correction.
Le code en cause
void double_valeur(int n) {
n = n * 2;
printf("dans la fonction : %d\n", n);
}
int main(void) {
int mesure = 21;
double_valeur(mesure);
printf("dans main : %d\n", mesure);
return 0;
}
La correction
Rendre la valeur et la réaffecter : la fonction devient int double_valeur(int n) avec un
return n;, et l'appel s'écrit mesure = double_valeur(mesure);. La seule autre voie est de passer
l'adresse de la variable, ce qui demande un pointeur.