Is it a Bug? (void*)
Andrew Haley
aph@redhat.com
Fri Mar 23 16:15:00 GMT 2007
Duft Markus writes:
> Kevin P. Fleming <> wrote:
> > Glen Beane wrote:
> >> what about doing the conversion after incrementing the pointer?
> >>
> >> void *myptr = (void*)(otherptr + 1);
> >
> > Then the pointer will be incremented by sizeof(*otherptr), which could
> > be anything and is likely to not be '1 byte'.
>
> Yes, correctly...
>
> The thing is, i can cast to char*, but thats not the point. I just
> wanted to know if it's wanted that void=1byte with gcc -> it's not
> necessarily with other compilers. (it's not with microsoft's cl which
> i'm porting to ;o))
5.17 Arithmetic on `void'- and Function-Pointers
================================================
In GNU C, addition and subtraction operations are supported on pointers
to `void' and on pointers to functions. This is done by treating the
size of a `void' or of a function as 1.
A consequence of this is that `sizeof' is also allowed on `void' and
on function types, and returns 1.
The option `-Wpointer-arith' requests a warning if these extensions
are used.
More information about the Gcc-help
mailing list