jac*_*hab 3 c++ types pointers casting
void foo(void **Pointer);
int main ()
{
int *IntPtr;
foo(&((void*)IntPtr));
}
Run Code Online (Sandbox Code Playgroud)
为什么我会收到错误?
error: lvalue required as unary ‘&’ operand
Run Code Online (Sandbox Code Playgroud)
谢谢
void foo(void **Pointer);
int main ()
{
int *IntPtr;
foo((void**)&IntPtr);
}
Run Code Online (Sandbox Code Playgroud)
当你这样做
(void*)IntPtr
Run Code Online (Sandbox Code Playgroud)
您创建一个临时变量,它只是一个右值,因此无法解除引用.
你需要做的是:
int main()
{
int* IntPtr;
void* VoidPtr = (void*)IntPtr;
foo(&VoidPtr);
}
Run Code Online (Sandbox Code Playgroud)
或同等学历