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

void ** pointer in function argument c++

本文关键字:指针 void 中的 参数 c++ 函数      更新时间:2023-10-16

在这种情况下,如何从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的值在返回后超出了作用域。在这种情况下,这可能会起作用,因为文字的地址具有静态存储持续时间。

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

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

这是完整的工作样本。


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