void **函数参数c ++中的指针

时间:2015-02-17 17:26:24

标签: c++ function arguments void-pointers

如何在这种情况下从void **函数参数输出wchar_t *的变量?

我想通过使用void **在ChangeMe变量中插入t的值,如何实现?

void foo(void **v){ wchar_t *t = L"String is changed!"; *(wchar_t*)v = *t; } 
wchar_t *ChangeMe = L"";

尝试已经(不工作):

foo((void**)ChangeMe );

1 个答案:

答案 0 :(得分:3)

你可能想写

*((wchar_t**)v) = t; 

请注意,t的值在返回后超出范围。这可能适用于这种情况,因为文字的地址具有静态存储持续时间。

当将ChangeMe传递给您想要实际指定其地址的函数时:

foo((void**)&ChangeMe);
         // ^

这是fully working sample


不要打扰无效指针;编写适当的C ++代码。