即使在强制转换为空指针之后,我在取消引用它时也会遇到编译错误。
任何人都可以让我知道原因。

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] ...)

09-11 15:59