好的,我有一个变量
void * vp
通过一个函数
processData (void * vp)
我有一个接受以下参数的函数
findIDType(const char* const pointer)
并希望将 pv 作为 findIDType(pv)
使用 GNU 2.95.3 编译
顺便说一句,不能使用任何其他编译器。
问题是编译器没有告诉我为什么它 Not Acceptable ,
它只是打印出一条消息 cannot
而没有任何有用的描述。
如何转换?从 void*
到 const char* const
我试过 (char*)pv
, (const char*)pv
和 (const char* const)pv
都没有成功
最佳答案
您必须使用reinterpret_cast
,并强制转换为您想要传递的完整类型,这应该可行:
const char* const ptrTpPass = reinterpret_cast<const char* const>(vp);
但是正如评论中提到的,static_cast
也可以工作并且实际上更可取:
const char* const ptrTpPass = static_cast<const char* const>(vp);
关于c++ - 将 void 指针传递给具有 const char * const 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591962/