知者_南墙 2021-04-29 19:53 采纳率: 0%
浏览 23

简单的C++指针造成的内存泄漏问题,刚学习,有大哥能帮忙解释下下面的原理么?

class ClassA
{
    int a;
public:
    ClassA();
    ~ClassA();
    int b;
    int *c;
};

ClassA::ClassA()
{
    a = 1;
    b = 2;

    *c = 3; //引发了未经处理的异常:写入访问权限冲突。
this->**c** 是 nullptr。
}
ClassA::~ClassA()
{
    delete c;
    c = NULL;
}
int main()
{    
    ClassA *B = new ClassA();
    cout << "A的值是:" <<B->b<< endl;
    cout << "C的值:" << B->c << endl;
    return 0;
}

 

  • 写回答

7条回答 默认 最新

  • CSDN专家-Time 2021-04-30 07:07
    关注

    你指针都没初始化.内存都没开辟。直接赋值当然报错。

    ClassA::ClassA()
    {
        a = 1;
        b = 2;
        
        c = new int;
        *c = 3; //引发了未经处理的异常:写入访问权限冲突。
    
    }
    评论

报告相同问题?

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表