花卉网站建设项目策划书,西地那非片能延时多久每次吃多少,上海教育网站官网,防城港建设局网站主要方法#xff1a;利用系统带的函数#xff1a;EnableMemLeakCheck() 和函数重载#xff0c;能快速准备的定位到内存泄漏的地方#xff0c;方法简单且实用#xff0c;值得借用。 #include crtdbg.h
#ifdef_DEBUG //重载一下new函数#xff0c;这样能得到使…主要方法利用系统带的函数EnableMemLeakCheck() 和函数重载能快速准备的定位到内存泄漏的地方方法简单且实用值得借用。 #include crtdbg.h
#ifdef_DEBUG //重载一下new函数这样能得到使用new 开辟空间而发生泄漏的文件和所在行这就是定位 #define new new(_NORMAL_BLOCK,__FILE__, __LINE__) #endif void EnableMemLeakCheck() //用于检测是否有内存泄漏。 { _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG)|_CRTDBG_LEAK_CHECK_DF);
}
void main() { EnableMemLeakCheck(); int *leak new int[10]; }
运行后得到的消息
Loaded C:\WINNT\System32\ntdll.dll, no matchingsymbolic information found. Loaded C:\WINNT\system32\kernel32.dll, no matching symbolicinformation found. Detected memory leaks! Dumping objects - D:\DS_Learn\meleak\test1.cpp(19) : {39}normal block at 0x00430120, 40 bytes long. Data: CD CD CD CD CD CD CD CD CD CD CD CD CD CD CDCD Object dump complete. The thread 0x91C has exited with code 4391200 (0x430120). The program D:\DS_LEARN\meleak\Debug\meleak.exe has exited withcode 4391200 (0x430120).
很快就能定位到内存泄漏的地方。
我原来也利用相关的方法在C代码中重载malloc 和free也能很好的检测有没有内存泄漏和发生泄漏的地方方法都很简单其实自己在写代码注意一下结构还是很容易避免发生内存泄漏。 平时喜欢用这样的结构 projectname_init(); //在初始化时开辟好空间对project中一些变量如结构体开辟空间 projectname_process(); //作相关的处理 projectname_uninit(); //结束程序运行释放所以动态分配的空间。