字符数组的析构函数错误
Destructor for char arrays Error
我有以下代码:
class Class
{
private:
char* str;
public:
Class(const char* src)
{
str = new char[strlen(src)];
strcpy(str,source);
}
~Class() {
delete [] str;
}
};
main函数用某个字符串调用构造函数。退出时,运行时在析构函数上崩溃。错误信息是:
pointer being freed was not allocated
如何解决这个问题
看看使用std::string
后,您的代码变得多么漂亮和安全:
class Class {
std::string str;
public:
Class(char const *src) : str(src) {}
};
并且您不需要担心删除内存,为末尾的