本文主要对内存泄漏、内存溢出、内存踩踏【踩内存】以及malloc的底层实现原理进行了总结。话不多说,直接往下看:
参考文章:
-
内存泄漏与内存溢出:
https://blog.csdn.net/ruiruihahaha/article/details/70270574
-
踩内存:
https://blog.csdn.net/u014485485/article/details/104714934
-
malloc的底层实现原理:
https://blog.csdn.net/ypshowm/article/details/89071869
目录
内存泄漏与内存溢出
内存泄漏与内存溢出的概念:
-
内存泄漏(memory leak):
是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏不断堆积后,就会造成内存溢出。
-
内存溢出(out of memory):
指程序申请内存时,没有足够的内存供申请者使用。通俗理解就是内存不够,通常在运行大型软件或游戏时,软件或游戏所需要的内存远远超出了你主机内安装的内存所承受大小,就叫内存溢出。或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。
内存泄漏与内存溢出二者的关系
内存泄漏的堆积最终会导致内存溢出。
-
**内存泄漏:**你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配