内存泄露与内存溢出的区别

内存泄露:申请了一块内存,使用完成之后,内存没有及时释放,或者错误的操作,导致该块内存无法释放了。或者是指针丢失了,没法释放了。

  • 常发性内存泄露:经常发生,即产生内存泄露的代码会多次被执行到。

  • 偶发性内存泄露:仅仅在特定的环境或操作过程中产生,常发和偶发是相对的,在某些特定情况下,偶发性可能就变成了常发性。

  • 一次性内存泄露:内存泄露代码只会被执行一次,可能由于算法缺陷导致。

  • 隐式内存泄露:程序执行过程不断分配内存,但是直到结束时才进行释放。

内存溢出:即内存越界,一种常见的情况是调用栈溢出即StackOverflow,这种情况可以看成是一种栈内存空间不足的表现。但是实际上,内存溢出不一定和内存分配有关系,还有另外一种情况是缓冲区溢出。请勿将内存溢出与内存不足划等号。

ZHANGCHI wechat
关注微信号进一步交流