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


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

为什么会在这种释放中也会出现崩溃?
#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();
}