Я использую объект в наследуется QWidget, и для того, чтобы знать, когда он закрыт, я использовал setAttribute(Qt::WA_DeleteOnClose)
и соединялиУдаление объекта, который наследует от QWidget, WA_DeleteOnClose ошибки сегментации
connect(myObj,SIGNAL(destroyed(QObject*)),this,SLOT(handleFinish()));
Однако, когда объект удаляется, я получаю munmap_chunk(): invalid pointer
, и когда я смотрю адрес указателя, это один из элементов данных myObj, который на самом деле не является указателем.
выделяет myObj динамически, поэтому он должен быть в куче - myObj = new myObj();
ошибка приходит в конце myObj деструктора, и я проверил, что это первый раз, когда вызывается деструктор (после просмотра When setting the WA_DeleteOnClose attribute on a Qt MainWindow, the program crashes when deleting the ui pointer).
Любые предложения по работе с ним?
Выполняется ли вызов 'handleFinish()'? Вы развращаете свою память. Я думаю, что этот вопрос невозможен, если вы не предоставите [MCVE] (https://stackoverflow.com/help/mcve). Попробуйте изолировать проблему, временно удалив инструкции из деструктора и/или удаляйте данные элемента (которые разрушаются при уничтожении объекта), и наблюдайте за переменной statement/member, которая приводит к тому, что авария не возникает, когда она закомментирована. – Mike