跟踪/断点陷阱:删除 []

时间:2021-05-06 09:10:45

标签: c++ oop

我使用 VScode,它在线显示“跟踪/断点陷阱”:delete [] str; 这是我的代码:

#include <iostream>
#include <cstring>
using namespace std;
class String
{
private:
    char *str;

public:
    String() : str(new char[1]) { str[0] = 0; }
    const char *c_str() { return str; }
    String operator=(const char *s);
    ~String()
    {
        delete[] str;
    }
};
String String::operator=(const char *s)
{
    delete[] str;
    str = new char[strlen(s) + 1];
    strcpy_s(str, strlen(s) + 1, s);
    return *this;
}
int main()
{
    String s;
    s = "abc";
    cout << s.c_str() << endl;
    return 0;
}

代码在析构函数处停止: 删除[] str; 我想知道发生了什么。

0 个答案:

没有答案