0
点赞
收藏
分享

微信扫一扫

[C++]char*数据在函数外和内部创建对象的问题


今天调试发现一个有趣现象

代码1:

#include <iostream>

void func(char* data)
{
    memcpy(data,"12345",5);
}


int main()
{
    char* data = new char[5];
    func(data);
    std::cout << "Hello World!\n";
}

代码2:

#include <iostream>

void func(char* data)
{
    data = new char[5];
    memcpy(data,"12345",5);
}


int main()
{
    char* data = nullptr;
    func(data);
    std::cout << "Hello World!\n";
}

我想通过一函数将char* data引用传递。代码1可以正常运行,代码2就不行了,可见char*在函数内部创建会被释放掉。因此大家一定要注意这个问题。

举报

相关推荐

0 条评论