- #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