c++中的常见泄漏(一)
--------------------------------------------------------------------------
*整理:Zsm。
*时间:2011-4-14。
*出处:http://blog.csdn.net/zsm0107。
-----------------------------------------------------------------------------
在类的构造函数和析构函数中没有匹配的调用new和delete函数
详细:
用new动态分配了内存,却忘了调用delete显示的释放。
1.在堆里创建了对象占用内存,但是没有显示的释放对象占用的内存
2.在累的析构函数中动态的分配了内存,但是在析构函数中或是没有释放内存或是没有正确的释放内存
例子
class Point
{
private:
int x;
int y;
char *color;
public:
Point(int,int,char *);
~Point();
};
//注意:析构函数为数据成员"color"分配了内存空间,但是没有析构函数来释放这一分配的内存。
Point::Point(int new_x, int new_y, char *col)
{
x=new_x;
y=new_y;
color=new char[strlen(col)+1];
strcpy(color,col);
}
Point::~Point()
{
delete color;
}