gpt4 book ai didi

c++ - 为什么分配的内存要适当释放?

转载 作者:搜寻专家 更新时间:2023-10-31 02:08:43 24 4
gpt4 key购买 nike

我一直认为,每当您使用“new”初始化一个指针时,分配的内存将始终用于该指针,即使您正在编写的应用程序终止后也是如此。直到我发现应用程序关闭后操作系统显然清除了内存,这让我有点困惑,因为如果是这种情况,那么如果内存泄漏被清除,为什么游戏或其他应用程序中的内存泄漏会成为这样的问题一旦应用程序关闭?

最佳答案

是的,您在程序中分配的所有内存都将在您终止时由操作系统释放。

但这个故事背后有两个重要因素。

  1. 如果您的程序分配了内存但内存泄漏了,您实际上是在计算机内存中创建了一些区域,这些区域既不能被您的应用程序使用,也不能被并行运行的另一个应用程序使用。如果您期望您的程序有较长的生命周期,这就不好了。如果泄漏发生在一个长循环中,它可能会窒息整个系统。

  2. 如果您的程序将成为某种单实例 DLL(例如 Windows 进程内/进程外 COM 服务器),则整个系统都会有麻烦。这是因为即使在用户退出使用它的程序后,操作系统也不会立即卸载 DLL。

编写程序不仅仅是在代码中放置逻辑。它始终与准确有效地管理您的资源有关。资源总是有限的。

关于c++ - 为什么分配的内存要适当释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47171723/

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