Hi, I observed a strange behaviour (for me only) of void pointer. I wrote a code to access an integer through void pointer as below:
void *ptr; int a[2] = {1,2};
ptr = (int *)&a; ptr++; // This is giving error: Unknown Size
Why the above increment statement is giving error as i already cast the pointer to int type ?
Can anybody help me in understanding this ?
Karthik K.
Setting a void pointer to the address of an object does not change the pointer's type; it's still a void pointer.
For example, if you assigned the address of a function to a void pointer and then tried to increment the pointer, what result would you expect?
then whats the correct way?
whats the correct way?
Depends on what you are trying to do. If you are really only going to use this pointer to point to int, then make it a pointer to int. If not, explain what you are trying to do.
- mike
View all questions in Keil forum