跳到主要内容

1 篇博文 含有标签「c++」

查看所有标签

内存泄漏 与 malloc chunk

· 24 分钟阅读
Ye Shu
Studying how C++ allocates and frees chunks in memory

我为什么写这篇文章

在我暑期实习期间 debug 一个内存泄漏的问题时,我发现我使用的其中一个 API return 了一个裸指针,从而把这个目标的 ownership 转移给了调用者(我)。换言之,我现在需要负责在代码运行完毕之后手动 delete 掉这个指针。尽管这是一个 非常糟糕的工程实践,我开始对内存泄漏是如何产生的,以及 delete[] 是如何删除内存的产生了兴趣。

在做了一些研究与实验后,我写下了这篇文章。本文将试图回答三组问题:

  1. 什么是内存泄漏?
  2. 对象是如何在 堆 (heap) 上被分配的?delete[] 如何知道它需要释放哪块内存?
  3. 我们如何预防内存泄漏?