错误堆内存,内存损坏,#181 只是不明白。有时尝试使用复制 ctor 和它相同的错误。你能解释一下吗
Test::Test() {
desc = new char[4];`
desc = "Try";
}
Test::~Test() {delete [] desc; }
它失败是因为您不了解C++的基础知识。
desc = new char[4]; desc = "Try";
这行代码首先为 4 个字符分配内存,返回指向已分配内存的指针并将其存储在 desc
中。但是,下一刻您完全失去了此指针,现在将"Try"(字符串文本)分配给desc
。现在,您的desc
指向"尝试"。
这里
Test::~Test() {delete [] desc; }
您删除指向"尝试"的指针 - 好像您会delete "Try"
.但是您不能删除字符串文本,您没有创建它。
因此崩溃。