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

void ** pointer in function argument c++

在这种情况下,如何从 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 );

你可能想写

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

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

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

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

这是 fully working sample


不要为空指针烦恼;编写正确的 C++ 代码。