Всем привет. Я сейчас пишу мастер, который на одном из этапов работы должен запусать другую программу и закрывать сам.Пнрограмма вроде работает нормально, однако если я прогоняю ее через Valgrind, тот говорит, что возможна утечка памяти и вываливает мне в консоль отчет на 2к строк. Форумы настоятельно рекомендуют относиться к возможным утечкам памяти как к полноценным.
Вот код сильно упрощенной программы:
mainwizard.cppMainWizard::MainWizard(QWidget *parent) :
QWizard(parent),
ui(new Ui::MainWizard)
{
ui->setupUi(this);
setWizardStyle(QWizard::ClassicStyle);
//Вот на эту строку ругается валгринд
setPage(0, new WizardPage());
}
MainWizard::~MainWizard()
{
qDebug() << "end";
delete ui;
}
void MainWizard::TerminateWizard()
{
QString program = "../GrafonTest/GrafonTest";
QStringList arguments;
QProcess::startDetached(program, arguments);
done(0);
}
wizardpage.cppWizardPage::WizardPage(QWidget *parent) :
QWizardPage(parent),
ui(new Ui::WizardPage)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(pressed()), this, SLOT(FinishWizard()));
}
WizardPage::~WizardPage()
{
delete ui;
}
void WizardPage::initializePage()
{
MainWizard *pWizard = (MainWizard*)wizard();
connect(this, SIGNAL(timeToEndWizard()), pWizard, SLOT(TerminateWizard()));
}
void WizardPage::FinishWizard()
{
emit timeToEndWizard();
}
main.cppint main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWizard w;
w.show();
return a.exec();
}
Валгринд ругается только есть я сначала добавляю к визарду страницу через setpage и потом вызываю QProcess. Если хотя бы одна из этих функций не вызывается, ошибок нет.
Это ложное срабатывание такое или я что-то делаю не так?