Bonjour,

je suis en train de développer une bibliothèque de gestion sécurisée de la mémoire et j'aimerai comprendre quelques comportements des fonctions d'allocation dans des cas extrêmes :

Réserve 0 octet à une adresse valide.

Renvoi NULL. Il doit sagir d'un comportement indéfini puisque le paramètre de malloc est de type size_t (entier non signé) donc risque d'integer overflow.

On retrouve bien un comportement identique à malloc

Par contre avec p valide :
Renvoi NULL et p semble toujours valide. Alors pourquoi le comportement n'est pas le même qu'avec malloc : renvoyer p valide avec 0 octet de réversé?

Alors qu'est ce qui est normal et qu'est ce qu'il vaut mieux éviter?

Comme il s'agit sûrement de comportements indéfinis, voici ma configuration si vous souhaitez tester :
  • Windows XP Pro
  • Code::Blocks
  • Mingw livré avec Code::Blocks


Merci d'avoir suivi jusqu'à là