0

我有一个 C++ 函数:

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

我想我做了什么a= (int*)param; 是正确的。但不知道为什么我收到编译错误“无法从 int* 转换为 int.

任何人都可以在这方面帮助我。

提前致谢。

4

2 回答 2

3

因为a是一个int而不是一个int*。你的意思:

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

反而?

于 2012-04-12T15:16:45.497 回答
1

转换param为后(int*),您需要取消引用它以将其用作变量:

int a;
int* intParamPtr = (int*)param;
a = *intParamPtr; // * is dereference operator
于 2012-04-12T15:17:51.460 回答