即使在强制转换为空指针之后,我在取消引用它时也会遇到编译错误。
任何人都可以让我知道原因。
int lVNum = 2;
void *lVptr;
lVptr = (int*)&lVNum;
printf("\nlVptr[60 ] is %d \n",lVptr[1]);
最佳答案
printf("\nlVptr[60 ] is %d \n", *(int*)lVptr);
这会将void指针转换为指向int
的指针,然后正确取消引用它。
如果要将其视为一个数组(一个数组),则可以执行一个稍微难看的((int *)lVptr)[0]
。使用[1]
超出范围,因此不是一个好主意(至于lVptr[60]
...)