c++什么时候终止程序的内存泄漏很重要?

标签 c++ memory-management memory-leaks

我读了wikipedia文章说

Memory leaks may not be serious or even detectable by normal means. In modern operating systems, normal memory used by an application is released when the application terminates. This means that a memory leak in a program that only runs for a short time may not be noticed and is rarely serious.

操作系统在终止时自动释放正常内存。因此,如果内存泄漏无论如何都不严重,程序终止后泄漏的内存可能无关紧要。

但它只在“正常内存”的情况下提到,我很担心。 谁能解释一下非正常内存是什么意思?

最佳答案

一些哲学原因怎么样?😀 对于初学者来说,如果您以后需要重新设计程序中的生命周期概念,例如切换到服务、dll、多文档支持或类似的东西,解决这个问题将成为必须和额外的成本。其次,如果程序不释放内存,它很可能不会释放其他关键资源,例如服务器上的文件锁(纯粹是猜测,当然,我不知道你的程序做了什么)。

但是在专用硬件上的实时系统之外,进程终止时的内存释放将得到保证。它们的行为可能非常不同。

关于c++什么时候终止程序的内存泄漏很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42663786/

相关文章:

c++ - 发布版本中会删除 "if ... ASSERT"吗?

c++ - 将 std::vector 转换为 NumPy 数组而不复制数据

c++ - 如何安全地将 new 创建的对象传递给构造函数

python - 在 valgrind 下运行 python 显示很多内存错误是否正常?

C# - 将事件作为参数传递给子类时发生内存泄漏

javascript - 如何在没有内存泄漏的情况下删除 DOM 元素?

android - 如何使用 JNI 将数据传递到构造函数

ruby - 在 Ruby 中删除类实例?

c++ - Windows 10 是否会防止您访问其他程序正在使用的内存?

c# - 链接 C++ 和 C#