B
Ben Pfaff
dspfun said:void *p;
printf("%i\",sizeof(*p));
This prints 1, why is the size of a dereferenced void pointer 1?
Probably because you're using GCC in nonconforming mode.
From the GCC manual:
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.