Pourquoi mon pointeur non null après libre?

void getFree(void *ptr)
{
    if(ptr != NULL)
    {
        free(ptr);
        ptr = NULL;
    }
    return;
}
int main()
{
char *a;
a=malloc(10);
getFree(a);
if(a==NULL)
    printf("it is null");
else
    printf("not null");
}

Pourquoi la sortie de ce programme n'est pas NULLE?

Le conditionnel avant free n'est pas nécessaire. Il est parfaitement OK pour appeler free(0).

OriginalL'auteur Jeegar Patel | 2011-09-30