内存泄漏
问题描述
程序中已经动态分配的堆内存由于某种原因未释放或无法释放
- 堆内存
malloc、realloc、new等动态分配一块内存,设计错误,内存没有被释放 - 系统资源
程序使用系统分配的资源比如BitMap等没有相应函数释放,导致系统资源浪费,导致系统效能降低,系统运行不稳定 - 虚函数
没有将基类的析构函数定义为虚函数
问题检测
- windows平台下通过CRT中的库函数
- Linux工具valgrind检测
- 可能泄漏的调用前后块的快照,比照前后状态定位泄漏位置
栈溢出
问题分析
- 局部数组过大
- 递归调用层次太多
- 指针或数组越界