typedef struct{
int foo;
double bar;
char baz[256];
} aaa;

typedef struct{
int foo;
double bar;
} bbb;

aaa a;
bbb b;
とした場合、
*(*bbb)&a = b;
は
a.foo = b.foo;
a.bar = b.bar
と同じ結果を期待できますか?