I was just trying to use a void pointer to an integer array ,I tried to see if i can print the array back by casting it back into int. But it is giving me some random value.
you should not add numbers to void pointers. cast it before. (x = *((int *)arr+j);)
When you add number to a pointer, the compiler multiply this number with the size of the type that is pointed, so if you add number to a pointer to wrong type, you will get wrong result.
if I remember correct, add to void* is illegal, but some compilers adds the exact number in bytes (like it is char*). `