#include <stdio.h>
#include <stdlib.h>
struct base
{
double some;
char space_for_subclasses[];
};
struct derived
{
double some;
int value;
};
int main(void) {
struct base
*b
= malloc(sizeof(struct derived
)); b->some = 123.456;
struct derived *d = (struct derived*)(b);
d->value = 4;
struct base *bb = (struct base*)(d);
printf("%f\t%f\t%d\n", d
->some
, bb
->some
, d
->value
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0cnVjdCBiYXNlCnsKCWRvdWJsZSBzb21lOwoJY2hhciBzcGFjZV9mb3Jfc3ViY2xhc3Nlc1tdOwp9OwoKc3RydWN0IGRlcml2ZWQKewoJZG91YmxlIHNvbWU7CglpbnQgdmFsdWU7Cn07CgppbnQgbWFpbih2b2lkKSB7CglzdHJ1Y3QgYmFzZSAqYiA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IGRlcml2ZWQpKTsKCWItPnNvbWUgPSAxMjMuNDU2OwoJc3RydWN0IGRlcml2ZWQgKmQgPSAoc3RydWN0IGRlcml2ZWQqKShiKTsKCWQtPnZhbHVlID0gNDsKCXN0cnVjdCBiYXNlICpiYiA9IChzdHJ1Y3QgYmFzZSopKGQpOwoJcHJpbnRmKCIlZlx0JWZcdCVkXG4iLCBkLT5zb21lLCBiYi0+c29tZSwgZC0+dmFsdWUpOwoJcmV0dXJuIDA7Cn0K