Debug Assertion Failed! QT Debug关闭软件窗口报错

img


    QStringList qstrList;
    qstrList<<u8"事件列表" << u8"考核标准" <<u8"科目列表";
    QVBoxLayout* leftLayout = new QVBoxLayout;//左布局器
    QVBoxLayout* rightLayout = new QVBoxLayout;//右布局器

    QWidget* widgets = new QWidget[3];//三个控件
    QLabel* lals = new QLabel[3];
    for(int i = 0 ;i<3;i++){
        lals[i].setText(qstrList.at(i));
        leftLayout->addWidget(&lals[i],1);//加入布局器
        leftLayout->addWidget(&widgets[i],3);//加入布局器
    }

为什么QWidget和QLabel控件我用数组new出来的最后关闭软件,就会有这样的报错呀。
是我数组new的方式不对么?Debug模式关闭软件会报错,release模式会有一个程序异常结束的报错。
我只是不想一行一行的写,想用一下for循环而已。

虽然这三个组件是在这个函数中定义的,但你使用的是动态分配空间。这个空间在函数退出时是不会自动释放的,只有关闭软件的时候才会自动回收,所以问题可能跟你这三个组件有关系

关闭软件的时候做了什么操作呢?