Size of Structure without using sizeof()

01 February, 2013 - 1 min read

#define SIZEOF(X) (unsigned int)( (char *)(&X+1)-(char *)(&X) )

struct sample *ptr;
ptr=(struct sample*)0;

p1 = (unsigned char*)(ptr);

p2 = (unsigned char*)(++ptr);

size = p2 - p1;

Can also find out by declaring an Array of structure and finding the difference between addresses of the first and second element in the array.

struct sample s[2] ;

int s1 = (int) &s[0] ;

int s2 = (int) &s[1] ;

printf ( "%d\n", s2 - s1 ) ;