1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 int main () 5 { 6 struct foo { 7 unsigned base:8; 8 unsigned flag1:1; 9 unsigned flag2:3; 10 unsigned flag3:4; 11 char nothing[0]; 12 }; 13 14 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER) 15 16 struct foo* f = (struct foo *) malloc (offsetof (struct foo, nothing)); 17 f->base = 1; 18 f->flag1 = 1; 19 free (f); 20 21 22 return 0; 23 } 24