关于#c++#的问题:c++浅拷贝只使用基础数据类型却在释放的时候遇到了崩溃

c++浅拷贝只使用基础数据类型却遇到了崩溃

img

img


在我的理解里面,像这种基本数据类型不都是直接赋值的嘛?内部的存储结构不应该是下面这种嘛?

img


为什么会在这种释放中也会出现崩溃?

#include<iostream>
using namespace std;
class person
{
public:
    int x;
    person()
    {
        cout << "person的普通构造函数调用" << endl;

    }
    
    ~person()
    {
        //析构是将堆区数据释放干净。
        cout << "person的析构函数调用" << endl;
    }    
};
void test01()
{
    person p;
    p.x = 13;


    person p2(p);
    
    cout << &p << endl;
    cout << &p2<<endl;
    delete &p;
    delete &p2;
}
int main()
{
    test01();
}

person p,这个是在堆栈上静态分配的变量
不能 delete
只有 new 的指针才能 delete