引言:
使用C/C++这种没有内存回收的机制的语言,怎么合理分配和释放内存,就显得尤为重要。尤其是长时间运行的服务器程序上,内存出现一个小小的问题,时间长了也可能造成意想不到的异常,导致服务器宕机或者某些关键服务的失败。因此,作为一名C/C++语言开发者,如何处理内存泄漏问题是十分重要的。
那么什么是内存泄露?
内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。
内存泄漏的原因:
在C/C++系统开发中,内存泄露这种错误是很难检测和被发现的,有时甚至在系统上线运行了很久,也似乎没有出现什么异常,但是某一天,系统就莫名地出故障了:从性能不良(并且逐渐降低)到内存完全用尽。更糟的是,泄漏的程序可能会用掉太多内存,以致另一个程序失败,而使用户