C++:我什么时候需要考虑可能的内存泄漏?

Mar*_* P. 2 c++ memory-leaks

我可以使用自己的代码在C++中意外地产生内存泄漏而不使用newmalloc函数吗?(以及分配内存的所有其他stdlib函数)

Gar*_*son 8

如果你没有在堆上分配任何东西,那么通常你不必担心内存泄漏.

如果不调用在堆上分配东西的函数,那么所有数据都保存在堆栈中,并在弹出时被销毁.

  • @ Dragontamer5788 Upvoted.但是内存仍然可以被释放(例如,它不是一个被遗忘的指针) - 我们并没有试图解决这里的暂停问题.(答案也使用了适当的语言.) (6认同)
  • @ Dragontamer5788 - 对不起,如果程序仍然控制着内存,它就不会泄露在经典意义上.是的,这是一个错误,但这不是我们所说的内存泄漏的错误.当程序完全忘记内存并且如果它想要的话就无法释放内存泄漏(经典). (5认同)
  • @ Dragontamer5788 - 内存泄漏怎么样?根据定义,当程序无法再访问已分配的内存块时,会发生内存泄漏.在无限循环示例中,永远不会有分配的内存变得无法访问的时间.所以没有内存实际泄漏.您可以争论不同的"定义",但我认为这很明确地解决了实际内存泄漏检测工具(如Valgrind)在执行示例代码时肯定不会报告任何内存泄漏的事实. (4认同)