Qt error:: write access violation at: 0x1, flags=0x0 (first chance)

在Qt编程中遇到'write access violation at: 0x1, flags=0x0 (first chance)'错误,该错误发生在三维重建类的进度对话框取消操作时。问题源于成员变量'stopped'的处理,虽然它是一个int类型,非指针,但在SlotcancelReconstruct()函数被重复调用导致重建类已被删除,而后续操作仍尝试访问已不存在的'stopped',引发异常。解决方案是确保正确管理和断开信号槽连接,以防止此类意外错误的发生。" 50615939,5461147,滴滴产品经理面试经验分享,"['产品经理', '面试经验', '滴滴出行', '反欺诈', '职业发展']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  错误描述:

        error: Exception at 0x7ff74c0565ba, code: 0xc0000005: write access violation at: 0x1, flags=0x0 (first chance)


  功能描述:

      设计了一个三维重建类。该类有一个进度对话框提示重建过程。当单击对话框的Cancel按钮,会将成员变量stopped设置为true。检测该变量状态来确定是否删除该三维重建类

取消按钮的响应函数:

void vtkReconstruct::SlotcancelReconstruct()
{
    //[1] --终止重建过程
    ISOFilter->Stop();
    //[2] --终止进度发送
    ProgressCommnd->setCancelState(true);
    //[3] --删除读取类和重建类
    if(isRunning())
    {
        stop();
        wait();//中断时不可以立即删除reader和ISOFilter,要等待当前步骤全部执行完再删除
    }
    if(ISOFilter)
    {
        delete ISOFilter;
        ISOFilter=nullptr;
    }
    if(reader)
    {
        delete reader;
        reader=nullptr;
    }
    //[3]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值