sizeof un membre struct

Comment obtenir la taille d’un membre dans une structure en C?

struct A { char arr[64]; }; 

J’ai besoin de quelque chose comme ça:

sizeof (A :: arr)

Merci

 sizeof(((struct A*)0)->arr); 

En bref, transformez un pointeur null en un type de struct A* , mais comme l’opérande de sizeof n’est pas évalué, ceci est légal et vous permet d’obtenir la taille des membres de structure sans créer d’instance de la structure.

Fondamentalement, nous prétendons qu’une instance existe à l’adresse 0 et peut être utilisée pour le calcul du décalage et de la sizeof .

Pour en savoir plus, lisez cet article:

http://www.embedded.com/design/prototype-and-development/4024941/Learn-a-new-sortingck-with-the-offsetof–macro