内存泄露及解决方法
2013-04-20 13:29
309 查看
内存泄露:内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。
简单例子:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
int main()
{
_CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDOUT );
_CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDOUT );
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT );
int* p = new int;
float *q = new float;
_CrtDumpMemoryLeaks();
system("pause");
return 0;
}
纤细内容参考:http://msdn.microsoft.com/en-us/library/e5ewb1h3(v=vs.80).aspx
简单例子:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
int main()
{
_CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDOUT );
_CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDOUT );
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT );
int* p = new int;
float *q = new float;
_CrtDumpMemoryLeaks();
system("pause");
return 0;
}
纤细内容参考:http://msdn.microsoft.com/en-us/library/e5ewb1h3(v=vs.80).aspx
相关文章推荐
- ATS插件开发中内存泄露问题的解决方法探讨
- 内存泄露、内存溢出以及解决方法
- PHP CURL 内存泄露问题解决方法
- AS3 unload() 与内存泄露解决方法
- Handler内存泄露原理及解决方法
- Android使用Handler造成内存泄露的分析及解决方法
- 使用Handler导致内存泄露的解决方法
- Flex中Module的使用以及内存泄露问题解决方法
- 分享.net常见的内存泄露及解决方法
- java反射造成的内存泄露解决方法
- Android使用Handler造成内存泄露的分析及解决方法
- wince 内存泄露的解决方法
- Java中典型的内存泄露问题和解决方法
- C# Webbrowser使用加载页面多少了内存泄露问题解决方法汇总
- 理解Java中的内存泄露及解决方法示例
- Flex内存泄露解决方法和内存释放优化原则
- 分享.net常见的内存泄露及解决方法
- PHP脚本内存泄露导致Apache频繁宕机解决方法
- C++ vector变量等导致内存泄露问题的解决方法
- Flex内存泄露解决方法和内存释放优化原则