#include <cstdio>
struct A { int x; };
struct B { int y; };
struct C : B, A {};
int main() {
void* c = new C();
printf("%p\n", c); // 0x1000
A* a = (A*) c;
printf("%p\n", a); // 0x1000
A* aa = (A*) ((C*) c);
printf("%p\n", aa); // 0x1004
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KCnN0cnVjdCBBIHsgaW50IHg7IH07CnN0cnVjdCBCIHsgaW50IHk7IH07CgpzdHJ1Y3QgQyA6IEIsIEEge307CgppbnQgbWFpbigpIHsKICAgIHZvaWQqIGMgPSBuZXcgQygpOwogICAgcHJpbnRmKCIlcFxuIiwgYyk7ICAvLyAweDEwMDAKICAgIEEqIGEgPSAoQSopIGM7CiAgICBwcmludGYoIiVwXG4iLCBhKTsgIC8vIDB4MTAwMAogICAgQSogYWEgPSAoQSopICgoQyopIGMpOwogICAgcHJpbnRmKCIlcFxuIiwgYWEpOyAvLyAweDEwMDQKICAgIHJldHVybiAwOwp9CgoK