留言与评论(共有 0 条评论) |
发布时间:2020-04-12 09:11:27
C/C++开发如何避免内存泄露,首先得了解内存泄露如何产生以及如何检查:
内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。内存内存泄漏几个常见情景如下:
这种情况是最容易出错的。一般出错的地方像如下的例子,在指针p的值被另一个函数所使用。
当存在双重指针的时候,正确的释放方法如下面所示:
在类里存在成员变量是指针时,在进行赋值运算和按值传参时,必须重载拷贝构造函数,重新实现其指针拷贝的部分.
检测是否存在内存泄漏问题:
1.在程序中包括以下语句:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
2.添加_CrtDumpMemoryLeaks();
使用析构函数,在c++中,类在声明存在期结束后会调用析构函数,你可以在析构函数中解引用内存开拓容量,这样可以有效避免内存泄漏,或者使用java和c#,这两种语言有垃圾回收站,加油
留言与评论(共有 0 条评论) |
全站搜索