Andreas Krebbel writes:
>
> > struct foo { int n; };
> > extern unsigned long c = 0;
> >
> > {
> > int b;
> >
> > b = 2;
> > ((struct foo*)(&b + c))->n = 3;
> > }
>
> For having a true dependency the example should look like this:
>
> struct foo { int n; };
> extern unsigned long c = 0;
>
> {
> int b;
> int d;
>
> b = 2;
> d = ((struct foo*)(&b + c))->n;
> }
6.7.2.1: A pointer to a struct object, suitably converted, points to
its initial member, and vice versa.
However, that doesn't imply that you can convert a pointer to an
arbitrary scalar to a pointer to a structure whose initial member has
the same type as the scalar.
Andrew.