struct int_float_s { int i; float f; }; int X; int *ptr_to_X () { return &X; } foo() { struct int_float_s *x = (struct int_float_s *) ptr_to_X (); X = 10; x->i = 3; return X; }