如何在这种情况下从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 );
答案 0 :(得分:3)
你可能想写
*((wchar_t**)v) = t;
请注意,t
的值在返回后超出范围。这可能适用于这种情况,因为文字的地址具有静态存储持续时间。
当将ChangeMe
传递给您想要实际指定其地址的函数时:
foo((void**)&ChangeMe);
// ^
不要打扰无效指针;编写适当的C ++代码。