gpt4 book ai didi

c++是否需要释放具有保留内存的局部变量?

转载 作者:太空狗 更新时间:2023-10-29 19:37:03 25 4
gpt4 key购买 nike

我有一个简单的问题。我一直在寻找答案,但我可能找不到正确的标签或词来找到解决方案...

问题如题所示:局部变量(保留内存)是否需要释放?我的意思是,例如,如果我有以下功能:

myClass* myFunction(){
myClass* A = new myClass;
return A;
}

如果是"is",我应该在哪里调用“删除”? “return”前后都是废话……

我说得对吗?

最佳答案

除非需要,否则不要使用 new

这避免了new,因此不需要删除

myClass myFunction(){
myClass A;
return A;
}

如果您认为需要指针,请考虑使用智能指针。

如果你想要原始指针的刺激,这个函数返回一个原始指针给调用者,他们必须在完成后删除它。

myClass * myFunction(){
myClass * A = new myClass;
return A;
}

myClass * thing = myFunction();
//stuff, that might throw an exception, so watch it
// smart pointers FTW
delete thing;

关于c++是否需要释放具有保留内存的局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634408/

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