KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
is this valid void *p = &X; /* some thing */ p += 12; and if so what does p now point to? I have (third party) code that does this (and compiles cleanly) and my guess is that the void * was treated as a char *. My trusty K&R is silent(ish) on the topic EDIT: My little test app runs fine on gcc 4.1.1 and treats void * as char *. But g++ barfs I know how to do it properly. I need to know if I have to clean this code base to find all the places its done. BTW gcc -pedantic throws up a warning Summary: The C spec is ambiguous. It says that in terms of representation and use as function parameters void* =char*. But it is silent regarding pointer arithmetic. gcc (4) permits it and treats it as char * g++ refuses it gcc -pedantic warns about it vs2010 both c and c++ refuses it
Tags (comma-separated)
Save Edits
Cancel