为什么要正确释放分配的内存

Why should the allocated memory be released properly?

本文关键字:分配 内存 释放 为什么      更新时间:2023-10-16

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

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

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

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

  2. 如果您的程序是某种单实例DLL(例如Windows进程内/进程外COM服务器),那么整个系统都会出现问题。这是因为即使用户存在使用DLL的程序,操作系统也不会立即卸载DLL

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