2012-04-12 63 views
0

我有一個C++函數:在VC++中對一個Integer變量進行類型轉換並分配一個void指針變量。

void Func(void* param) 
{ 
    int a; 
    a= (int*)param; 
} 

我想我已經做了一個=(INT *)參數;是正確的。但不知道爲什麼我收到編譯錯誤,如「不能從int *轉換爲int。

誰能好心幫我在THI方面。

在此先感謝。

+0

使用'的std ::從頭'',而不是'int' intptr_t'如果你真的打算這樣做(你不應該)。 – 2012-04-12 15:49:10

回答

3

因爲a是。int而不是int*你的意思是:

int a; 
a = *((int*)param); 

代替

+0

非常感謝:) – codeLover 2012-04-12 15:18:21

1

卡斯蒂後? NG param(int*),你需要提領它使用它作爲一個變量:

int a; 
int* intParamPtr = (int*)param; 
a = *intParamPtr; // * is dereference operator 
+0

非常感謝有用的信息:) – codeLover 2012-04-12 15:54:40