【发布时间】:2015-04-18 11:52:39
【问题描述】:
在这种情况下如何从 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 );
【问题讨论】:
-
由于这是 C++,也许您正在寻找模板和参考:
template<typename T> void foo(T &t) {t = newValue;} -
@chris 当然,您所说的这些可以提供帮助,但现在特别是我正在寻找如何“输出”值“String is chaged!” wchar_t 内部 *ChangeMe
-
如果它必须是
wchar_t*(不知道为什么你有void*),只需终止模板并使用引用作为参数:wchar_t *&。像对任何其他函数一样将变量传递给它,并像对任何其他变量一样分配给它。 -
你可能想写
*((wchar_t**)v) = t;(注意t的值在返回后超出范围)。不要理会void指针,编写正确的c++ 代码。 -
@πάνταῥεῖ -> 非常棒,您可以将其发布为答案
标签: c++ function arguments void-pointers