内存泄露
一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小 可以在程序运行期决定)内存块,使用完后必须显式释放的内存。应用程序般使用malloc,、realloc、 new等函数从堆中分配到块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否 则,这块内存就不能被再次使用,我们就说这块内存泄漏了
避免内存泄露的几种方式
1.计数法:使用new或者malloc时,让该数+1,delete或free时,该数-1,程序执行完打印这个计 数,如果不为0则表示存在内存泄露
2.一定要将基类的析构函数声明为虚函数
3.对象数组的释放一定要用delete []
4.有new就有delete,有malloc就有free,保证它们一定成对出现
检测工具:
Linux下可以使用Valgrind工具
Windows下可以使用CRT库