int main()
{
int b = 12;
void *ptr = &b;
printf("%d", *ptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我预计这段代码会打印 12,但事实并非如此。如果我们定义 int 指针而不是 void 指针,它就可以工作。我想知道如何使用 void 指针并打印分配给它的地址以及其中保存的数量?
取消引用 avoid *没有意义,因为它无法知道它指向的内存类型。
您需要将其转换为指向 a 的指针int *,然后取消引用它。
printf("%d", *((int *)ptr));
Run Code Online (Sandbox Code Playgroud)