MFC程序内存不足可能的原因
http://www.itnose.net/detail/243937.html
部分屏蔽可疑代码逐步定位问题位置 1、new之后有没有delete,malloc之后有没有free
2、检查所有创建内核对象的操作是否都及时关闭 ,打开任务管理器-查看-选择列-勾选 GDI对象,查看GDI资源是否持续上升,即GDI重复创建未被释放
3、MFC开发的程序,运行的时候弹出内存不足,点击确定后,程序不会崩溃。开始以为是new的内存没有delete,检查了相关的指针,没有发现内存泄漏。后来发现是读文件的时候,指针读到的字节数为0,却对指针进行了处理。 http://blog.csdn.net/chenquangobeijing/article/details/49230267
4、在使用多线程时,两个线程同时访问同一内存区域,一个在修改,另一在读,出现的访问冲突;
5、变量没有初始化 http://bbs.csdn.net/topics/360123986
6、未释放的矩阵 http://www.itnose.net/detail/243937.html
可用的工具: http://bbs.csdn.net/topics/390283085 内存泄露。建议用一下vld 或者用windbg 的UMDH命令查看下是那些模块内存泄漏了
用用boundchecker等内存检查工具。
http://bbs.csdn.net/topics/391020337 VMMap 是进程虚拟和物理内存分析实用工具。http://technet.microsoft.com/zh-cn/sysinternals/dd535533
编辑 (opens new window)
上次更新: 2021/10/11, 12:43:58