Hi Rick, gcc can warn about void pointer increment if you use compiler option -Wpointer-arith == Kalpesh On Thu, Oct 8, 2009 at 8:22 AM, Manish Katiyar <mkatiyar@xxxxxxxxx> wrote: > On Thu, Oct 8, 2009 at 7:42 AM, Rick Brown <rick.brown.3@xxxxxxxxx> wrote: >> Hello list, >> >> As far as I recall from K&R, isn't pointer arithmetic on a void >> pointer banned? And any effort to do that results in an error - >> because the compiler won't know by how much size to increment the >> pointer for a statement like "ptr++"? But then how about this: > > But in the program, you aren't actually trying to dereference the > value. Just adding means it becomes normal arithmetic and that is why > you get result as 1. You will see the error if you try to dereference > it. > > /tmp> gcc a.c > a.c: In function ‘main’: > a.c:5: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘void *’ > a.c:6: warning: dereferencing ‘void *’ pointer > a.c:6: error: invalid use of void expression > /tmp> cat a.c > #include <stdio.h> > int main() > { > void *ptr = 0; > printf("%d \n", ptr+1); > printf("%d \n", *(ptr+1)); > } > > >> >> [rick@linux rick]$ cat t.c >> #include <stdio.h> >> int main() >> { >> void *ptr = 0; >> printf("%d \n", ptr+1); >> } >> [rick@linux rick]$ gcc t.c >> [rick@linux rick]$ ./a.out >> 1 >> [rick@linux rick]$ >> >> It compiles and runs fine ... ! >> >> TIA, >> >> Rick >> >> -- >> To unsubscribe from this list: send an email with >> "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx >> Please read the FAQ at http://kernelnewbies.org/FAQ >> >> > > > > -- > Thanks - > Manish > ================================== > [$\*.^ -- I miss being one of them > ================================== > > -- > To unsubscribe from this list: send an email with > "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx > Please read the FAQ at http://kernelnewbies.org/FAQ > > -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ