C++自定义异常出错,有大神知道这是咋回事吗?

图片说明

#define _CRT_SECURE_NO_WARNINGS
#include
using namespace std;

class MyException{
public:
MyException(char* str){
error = new char[strlen(str)+1];
strcpy(error, str);
}
void what(){
cout << error << endl;
}
public:
char* error;

~MyException(){
    if (error != NULL){
        delete[] error;
    }
}

};
void fun3(){
MyException my("aaaa");
throw my;
}
void test01(){

try{
    fun3();
}
catch (MyException e){
    e.what();
}

}
int main(void)
{
test01();
system("pause");
return 0;
}


删除了由系统释放的指针或者 删除动态分配的指针的时候没有指向最初的地址
https://blog.csdn.net/u011068702/article/details/63702336

问题就出在delete这里,但是为啥错了啊?

系统释放的内存被你删了,他很空虚。