一个内存管理的有关问题
一个内存管理的问题!
这是我自己编写了一个异常类
class OutOfBounds
{
private:
char* msg;
public:
OutOfBounds():msg( "Out of Bounds! "){}
~OutOfBounds(){delete [] msg;}
char* Msg(){return msg;}
};
编译没有问题,但当我用catch捕获异常的时候,会报内存分配错误.
如果我吧析构函数注释掉就不会有错误,请哪位大虾给指点下,这个内存错误到底在出在那里.怎么产生的.
------解决方案--------------------
"Out of Bounds! " 是一个常量指针,不能删除的。
只 delete 你 new 出来的东西
------解决方案--------------------
记着new 和 delete是成对出现的就行了
------解决方案--------------------
msg( "Out of Bounds! ") 这里没有分配内存
所以不需要 delete [] msg
这是我自己编写了一个异常类
class OutOfBounds
{
private:
char* msg;
public:
OutOfBounds():msg( "Out of Bounds! "){}
~OutOfBounds(){delete [] msg;}
char* Msg(){return msg;}
};
编译没有问题,但当我用catch捕获异常的时候,会报内存分配错误.
如果我吧析构函数注释掉就不会有错误,请哪位大虾给指点下,这个内存错误到底在出在那里.怎么产生的.
------解决方案--------------------
"Out of Bounds! " 是一个常量指针,不能删除的。
只 delete 你 new 出来的东西
------解决方案--------------------
记着new 和 delete是成对出现的就行了
------解决方案--------------------
msg( "Out of Bounds! ") 这里没有分配内存
所以不需要 delete [] msg