我正常定义了一个对象,启动程序的时候是没有问题的,但是在我关闭UI的时候,会输出程序异常结束。我发现只要我注释掉定义对象的程序就不会出现上述问题。 // ABC *abc; // abc= new ABC();我在网上找了找解决方案,其中包括改变main文件中的语句,就不会出现问题,但是这样就不能正常执行mainwindows的析构函数,不能清除子线程。
// 原代码
// MainWindow w;
// w.show();
// 修改后
MainWindow* w=new MainWindow;
w->show();
于是我慢慢查程序,发现程序异常结束在主窗口的析构函数delete ui;这个位置,网上有说是可能是可能是程序对象多次析构,但是我并没有在其他位置使用delete析构对象。当然也不存在子线程对象指针未被销毁和死循环的问题,所以在这里请教大家到底哪里出了问题。