我有一个函数const void* getData()
,它返回一个指向常量数据const void*
的指针
我需要为这个函数编写一个包装器,它获取一个(输出)参数,它应该返回上面的指针。
void wrapGetData([type] ppData) {
*ppData = getData();
}
[type]
应该是什么?
void **不是可变的,因为getData()返回指向const
答案 0 :(得分:5)
如果getData()
返回void const *
,则[type]
应为void const * &
:
void wrapGetData(void const * & ppData)
{
ppData = getData();
}
请注意,&
是必需的,因为ppData
是输出参数。
您可以将此功能称为:
void const * output;
wrapGetData(output);
这与您必须将函数调用为:
的其他解决方案略有不同wrapGetData(&output); //if [type] = const void **
请注意const void*
和void const*
是一回事。所以不要混淆语法。
这与您必须将函数调用为:
的其他解决方案略有不同wrapGetData(&output); //if [type] = const void **
希望有所帮助。
答案 1 :(得分:2)
const void**
:
const void *getData() {
return nullptr;
}
void wrapGetData(const void** ppData) {
*ppData = getData();
}
int main() {
const void *p;
wrapGetData(&p);
}