gpt4 book ai didi

main 完成后 C++ 内存泄漏?

转载 作者:行者123 更新时间:2023-11-30 01:19:15 24 4
gpt4 key购买 nike

这是内存泄漏吗?假设 Foo() 是一个具有默认构造函数的类

int main()
{

Foo * p = new Foo();

return 0;
}

我认为这不是泄漏,因为应用程序会在 main 结束后立即结束,并且操作系统会在完成后释放该应用程序的所有资源。这个假设对吗?

最佳答案

是的,在您的程序上下文中这是一个泄漏。您没有取消分配您的 Foo

你的操作系统会回收进程的内存吗?也许,也许不是。当然,Windows 会重新使用内存。

但是,如果您只想为您的系统和您的系统提供一个通用的超实用答案,那么,是的,您可能会避开这个问题。

但是,在任何情况下,您的操作系统都不会神奇地释放间接资源。 Foo 的析构函数可能涉及的不仅仅是内存重新分配

如果你想要一个 C++ 答案,或者一个在代码完整性、智能设计(lol) 和坦率地说只是良好习惯方面有优点的答案,。当有人出于切实可行的理由要求他们必须找到一个理由执行delete时,如果被迫提供文件句柄、网络连接等示例,则很难证明其合理性,和工作线程。但基本常识告诉我们,所有这些问题都自动处理您无需逐个命名,只要您花 5 秒的时间来摧毁当你用完它们时你的对象。

只是删除它。你没有理由不这样做。

关于main 完成后 C++ 内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21127879/

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