TCS*_*rad 0 c pointers casting void-pointers compiler-warnings
我有以下代码:
void funcA(void* pArg)
{
STRUCTA abc;
.
. // Some processing here
.
if (pArg)
(STRUCTA *)pArg = abc;
}
Run Code Online (Sandbox Code Playgroud)
问题是,这段代码抛出了以下警告:警告:赋值目标不是真正的左值; 这将是一个艰难的错误
如果没有演员阵容,我会再次发出警告,我正试图取消引用无效指针......
由于警告被视为错误,我无法使用此代码 - 但我真的不能使用任何其他指针类型而不是void*作为参数.我缺少一个优雅的解决方案吗?
有没有办法让这项工作?
(STRUCTA *)pArg是指针类型,而abc不是.您需要取消引用指针:
*(STRUCTA *)pArg = abc;
Run Code Online (Sandbox Code Playgroud)