Reprise du message précédent :
Je crois que c'est le free(NULL) qui te perturbe.
Faut pas. C'est juste une exception.
Quant au comportement de realloc() sur NULL, c'est tout bête, il est défini que s'il n'y a rien à réallouer, realloc() alloue tout court (== malloc).
Autrement, NULL qualifie bien un pointeur invalide. L'adresse NULL n'existe pas, chaque fois qu'on teste la validité d'un pointeur, c'est avec cette constante que ça se fait, et quand une fonction assume que le pointeur est valide, et qu'il ne l'est pas, ça plante (ou mieux, c'est parfois détecté à la compilation).
NULL == invalide. Dans tous les cas. C'est pas un faux NaN discret, c'est pas du bricolage, c'est sa vraie signification.
Message édité par Elmoricq le 10-04-2006 à 20:32:35