内存泄漏和内存溢出的区别

内存溢出 out of memory

  指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。

内存泄露 memory leak

  是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
  内存泄漏的分类:

    1.对内存泄漏(malloc  new之类的)

    2.系统资源泄漏(使用的系统资源Bitap SOCKET之类的没有使用相应的函数释放掉)

    3.没有将基类的析构函数定义为虚函数。

内存泄漏如何判断?

  为了判断内存的泄漏,一方面可以使用Linux环境下的内存泄漏检查工具valgrind,另一方面在写代码时可以增加内存申请和释放的统计功能。看申请的和释放的是否一致来判断是否有内存泄漏的情况发生。

原文地址:https://www.cnblogs.com/xingzhuan/p/10712692.html