【问题标题】:c++ memory leak and garbage memoryc++内存泄漏和垃圾内存
【发布时间】:2014-07-19 19:29:04
【问题描述】:

我可以看到,如果我们在 c++ 中动态分配内存,但没有妥善管理它,我们可能会产生垃圾内存,并且我们基本上会出现内存泄漏,并且很清楚为什么会发生这种情况。因为例如,如果我们有一个指向内存地址的指针,并且我们在释放当前地址之前将该指针分配给另一个地址空间,那么这是一个问题。但我不明白的是,假设我们有一个坏程序不断添加垃圾内存,但是当我们关闭程序时,为什么一切都恢复正常了。例如,如果我们有一个c++程序引入的垃圾内存,那么就没有指向该垃圾内存的指针了,那么关闭程序后,所有的垃圾内存怎么会被释放呢?程序如何知道如何在程序关闭之前清理垃圾内存?

【问题讨论】:

    标签: c++ memory-management memory-leaks


    【解决方案1】:

    没有垃圾内存,不是你的程序分配和释放内存。它的底层操作系统。您正在使用它的服务在操作系统之上工作。堆内存和空闲存储只是这些服务提供的抽象(在这些文件中,“我是唯一在这个独特的 CPU 中运行的进程”等抽象)

    【讨论】:

      【解决方案2】:

      在 Windows 操作系统上,操作系统会清理进程分配的所有内存。因此,它基本上丢弃了分配给进程的空间,而不关心它包含什么。

      【讨论】:

      • Addition @ OP:这并不意味着省略删除是可以的。
      猜你喜欢
      • 2012-06-28
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 2016-11-02
      相关资源
      最近更新 更多