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
| int main(void)
{
/* -tc- Si on suppose que a est de type double, et non int comme
dans ton exemple */
double a;
/* -tc- On passage a la fonction g() l'adresse de la variable a, de type
pointeur sur double (double *) */
g(&a);
}
/* -tc- La fonction g() prend en argument une variable de type pointeur sur
double */
void g(double * b)
{
/* -tc- malloc() retourne l'adresse d'un espace memoire alloue pour
un pointeur sur double et retourne l'adresse de cet espace mémoire */
double ** c = malloc(sizeof b);
/* -tc- Toujours tester la validite de l'adresse retournee par malloc()
if (c != NULL)
{
/* -tc- Eventuellement faire qqch avec c */
/* -tc- Une fois qu'on quitte la fonction g(), la variable c est perdue,
mais l'espace alloue n'est pas libere. Ne pas oublier de liberer l'espace
alloue par malloc() avec free(). */
free(c), c = NULL;
}
} |