C++为void指针分配一个字符串

标签 c++

我有下一个问题。我有这样的功能。

unsigned long FuncTest(void* name) { ... }

当我调用 FuncTest 时,我将制作这种形式

int main()
{

    void* test = NULL;

    cout << "Value of test before to call Function: " << test << endl;

    FuncTest(test);

    cout << "Value of test after to call Function: " << test << endl;
}

我需要 FuncTest 将变量名称的值更改为字符串或字符之类的东西。有可能吗?

我输入了我拥有的代码,但无法正常工作。

void FuncTest(void* name)
{
    char* NewValue = _strdup("Hello!");
    cout << "Value of name in FuncTest before change: " << name << endl;

    name = NewValue;

    cout << "Value of NewValue in FuncTest: " << NewValue << endl;
    cout << "Value of name in FuncTest after change: " << (char*)name << endl;
}

接下来是结果:

Value of test before to call Function: 00000000
Value of name in FuncTest before change: 00000000
Value of NewValue in FuncTest: Hello!
Value of name in FuncTest after change: Hello!
Value of test after to call Function: 00000000

谁能帮帮我 谢谢!

最佳答案

您按值将 test 传递给函数,因此您在函数内部对其所做的任何更改都不会反射(reflect)在调用程序中。

您需要通过引用传递它:

void FuncTest(void *&name)

关于C++为void指针分配一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62479644/

相关文章:

c++ - 执行静态对象的析构函数时崩溃

c++ - C++ 库之间的差异(命名空间、链接)

c++ - 使用子类调用主类中的函数

c++ - 在 C++ 中如何更改存储在字符串中的文件扩展名?

c++ - 在 MinGW 中使用 __argc 和 __argv

c++ - 如何在 C++ 中读取 GSON 字符串

c++ - c , 指针错误?单词 a() 将始终评估为真

c++ - 使用许多静态成员有问题吗?

c++ - 将可变参数传递给另一个接受可变参数列表的函数

c++ - 如何将对象插入STL集