Isl*_*dan 2 c pointers casting void-pointers
我有以下代码:
#define NULL ((void*)0)
void* Globalptr = NULL;
void func(ptrtype* input)
{
((ptrtype*)Globalptr) = input;
}
Run Code Online (Sandbox Code Playgroud)
我在网上得到错误((ptrtype*)Globalptr) = input;说"表达式必须是可修改的左值"
您必须使数据与变量(左值)匹配,而不是更改变量的类型以匹配数据:
Globalptr = (void*)input;
Run Code Online (Sandbox Code Playgroud)
但由于您可以将任何数据指针转换为void*C,您可以简单地执行以下操作:
Globalptr = input;
Run Code Online (Sandbox Code Playgroud)