内存溢出 out of memory
指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。
内存泄露 memory leak
是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
内存泄漏的分类:
1.对内存泄漏(malloc new之类的)
2.系统资源泄漏(使用的系统资源Bitap SOCKET之类的没有使用相应的函数释放掉)
3.没有将基类的析构函数定义为虚函数。
内存泄漏如何判断?
为了判断内存的泄漏,一方面可以使用Linux环境下的内存泄漏检查工具valgrind,另一方面在写代码时可以增加内存申请和释放的统计功能。看申请的和释放的是否一致来判断是否有内存泄漏的情况发生。