我有一个与此实施相关的问题:
struct arg_struct
{
int low;
int high;
}*args;
void segmentedSieve(void * arguments)
{
arg_struct *args = arguments;
/****do something******/
}
我想用C++编译程序,因为其中有几个使用C++库的变量...
这里的问题就出在这一行:
arg_struct *args = arguments;
编译失败,编译器说这是从 void* 到 struct* 的无效转换...你知道如何解决这个问题吗?非常感谢任何帮助..
这是可重现的结果,我使用 C++ 来实现:
struct arg_struct
{
int low;
int high;
}*args;
void request_from_someone(void * arguments)
{
arg_struct *args = arguments;
/****do something******/
}
int main(){
/***nothing to see here, just trying to give a compilation error***/
return 0;
}
在 C++ 中,您需要显式从
void*
转换为真正的指针类型:
arg_struct *args = (arg_struct *)arguments;