#include #include typedef struct { int a; int b; }subTwo; typedef struct{ subTwo *sub; }subOne; typedef struct{ subOne *sub; }mainStruct; void createStruct(mainStruct **s0){ printf("sizeof mainStruct %d\n",sizeof(mainStruct)); (*s0) = (mainStruct *)malloc(sizeof(mainStruct)); (*s0)->sub = (subOne *)malloc(sizeof(subOne)); (*s0)->sub->sub = (subTwo *)malloc(sizeof(subTwo)); printf("sizeof subTwo %d\n",sizeof(subTwo)); } int main(){ mainStruct *s0; createStruct(&s0); s0->sub->sub->a = 42; printf("a = %d\n", s0->sub->sub->a); return 0; }