C++内存泄漏的思考和总结

Posted 洛白南歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++内存泄漏的思考和总结相关的知识,希望对你有一定的参考价值。

一、定义

内存溢出:Out of memory是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory。比如定义一个int类型的变量,给它存储一个long型才能存放的值,这个就是内存溢出(也常说内存越界);另一种常见的是数组越界。

内存泄漏:memory leak,是指程序在申请内存后,无法释放已申请的内存空间。常见的就是new/malloc出来的内存空间,最后没有delete/free掉。

通俗的来说,就是在程序向系统申请使用内存(new),使用完以后却没有及时释放归还给系统(delete),结果就是申请的内存自己也访问不到,系统的其他进程也无法访问,这就导致了内存泄漏。如果这样的内存增多,则系统可用的空间就越来越少,当系统剩余的内存不能满足后续进程申请的内存时,就会发生内存溢出。因此内存泄漏最终会导致内存溢出

内存泄漏一般分为四种类型:

1. 常发性内存泄漏

发生内存泄漏的代码会被多次执行到,每次执行都会导致一块内存泄漏。

2. 偶发性内存泄漏

发生内存泄漏的代码只有在特定的环境或操作过程中才会被

以上是关于C++内存泄漏的思考和总结的主要内容,如果未能解决你的问题,请参考以下文章

C++内存泄漏的思考和总结

C++内存泄漏的思考和总结

内存溢出(Oom)和内存泄露(Memory leak)

java内存泄漏与处理

基本的内存泄漏的解释

内存泄漏单元测试 C++