malloc_usable_size () renvoie une taille incorrecte

Je veux connaître la taille allouée par malloc.
J’ai écrit le code source ci-dessous.

test.c

#include  #include  #include  void main(void) { uint8_t *test; test = (uint8_t *)malloc(sizeof(uint8_t)*4); printf("sizeof(test) = %d\n",malloc_usable_size(test)); free(test); } 

Je m’attendais à taille 4.
Mais le résultat est 12.

 sizeof(test) = 12 

Pouvez-vous me dire ce qui ne va pas?
J’espère que la taille 4 sort correctement.

 malloc_usable_size(test) 

La valeur renvoyée par la fonction ci-dessus n’est pas fixée comme vous l’avez demandé. il peut être supérieur à la taille demandée de l’allocation en fonction de l’ordre et de l’alignement d’octets de l’unité centrale. cela dépend totalement de l’implémentation sous-jacente.