我是一盘牛肉 2023-05-05 21:11 采纳率: 50%
浏览 24
已结题

关于#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();
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2023-05-05 21:40
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月14日
  • 已采纳回答 5月6日
  • 创建了问题 5月5日