这里是我的代码:在C++中,我得到一个消息“错误:‘无效*’不是一个指针到对象类型”
#include <iostream>
using namespace std;
int main()
{
void *x;
int arr[10];
x = arr;
*x = 23; //This is where I get the error
}
正如你所看到的,代码很简单。它只是创建一个void指针x,指向数组'arr'的内存地址并将整数23放入该内存地址。但是当我编译它时,我得到错误消息“'void *'不是指向对象的类型”。当我使用'int'指针而不是void指针并编译它时,我不会收到任何错误或警告。我想知道为什么我会得到这个错误。
谢谢。
出于同样的原因,'空隙ÿ; y = 32;'不编译:编译器不知道如何将某些东西存储到不完整类型'void'中。如果“x”指向“短”或“长”,该怎么办? – 2015-02-11 17:21:36
这也取决于你的编译器。 int * x = 42; LLVM会产生错误。 – chrizke 2015-02-11 17:32:13
@chrizke你的代码如何与这个问题相关? – Slava 2015-02-11 17:42:46