在VC ++中进行类型转换并将void指针变量赋值给Integer变量。

时间:2012-04-12 15:15:11

标签: c++ visual-c++ type-conversion void-pointers

我有一个C ++函数:

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

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

任何人都可以帮助我。

提前致谢。

2 个答案:

答案 0 :(得分:3)

因为aint而不是int*。你的意思是:

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

代替?

答案 1 :(得分:1)

param投射到(int*)后,您需要取消引用将其用作变量:

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