gpt4 book ai didi

C++在函数中分配动态内存 - 新手问题

转载 作者:IT王子 更新时间:2023-10-28 23:32:56 27 4
gpt4 key购买 nike

我正在调查内存泄漏,从我看到的情况来看,问题如下:

int main(){
char *cp = 0;
func(cp);
//code
delete[] cp;
}

void func(char *cp){
cp = new char[100];
}

在//code 注释中,我希望 cp 指向分配的内存,但它仍然是一个空指针,这意味着我从不删除内存。我在做什么?

最佳答案

您正在为 cp 分配已分配内存的值。但是,这是堆栈上的一个变量:main 中 cp 的拷贝! cp 对于你所在的函数是本地的。

你想要的是引用:

void func(char *& cp)

这会将 cp 别名为传入的参数。

关于C++在函数中分配动态内存 - 新手问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1931218/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com