2012-04-12 59 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