這裏是我的代碼:在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