I don't see the logic of (void*)1. A void* stores a memory address, as all pointers. So you are casting 1 to a memory address? Meaning that you the memory address with value 1?? That makes no sense....