C'est vrai qu'on ne peut fonctionner qu'à coup de déductions, et je me demande ce que dit la norme là-dessus.
Tout ce que la man page garantie, c'est que les bytes que nous voulons conserver restent inchangés, au-delà de ça...
Et c'est vrai que pour les faibles capacités, il n'y a aucun intérêt à faire autre chose qu'à retourner l'adresse d'origine sans rien modifier.
EDIT : bon apparemment, ce n'est pas que pour les petites capacités, en tout cas dans la glibc. C'est pas très lisible donc je peux me planter, mais ces lignes de codes laissent peu de place au doute :
/* Note the extra SIZE_SZ overhead. */
if(oldsize - SIZE_SZ >= nb) return oldmem; /* do nothing */
|
(nb est la taille souhaitée)
(SIZE_SZ == sizeof(size_t), je ne comprends pas bien pourquoi c'est pris en compte mais il y a surement une bonne raison... je pense néanmoins que dans le cadre de ce topic on peut l'ignorer, ça ne change pas grand chose)
Message édité par Elmoricq le 18-08-2006 à 21:35:03