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++内存泄漏的思考和总结的主要内容,如果未能解决你的问题,请参考以下文章