Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Разработка баз данных _ QLineEdit & mysql api

Автор: FIL 10.4.2009, 17:01

Привет всем!
Есть такой код:

int main(int argc, char* argv[]) {
    MYSQL *m_sock = mysql_init( 0);
    if( m_sock)
        mysql_close( m_sock);

    QApplication app(argc, argv);

    QDialog *dlg = new QDialog();
    new QLineEdit(dlg);
    dlg->show();
    return app.exec();
}

После закрытия программы процесс висит еще секунд 5
Если закомментировать строку
new QLineEdit(dlg);

или закомментировать строки
MYSQL *m_sock = mysql_init( 0);
if( m_sock)
    mysql_close( m_sock);

то все нормально.

Кто что подскажет?
Спасибо.

Автор: ViGOur 10.4.2009, 17:23

Скорее всего просто освобождаются выделенная память и не более того.
А вот почему это происходит, не понятно.

Цитата(Гость_FIL_* @ 10.4.2009, 18:01) *
new QLineEdit(dlg);
Еще, создание плавающих указателей не хорошая практика.

Автор: FIL 10.4.2009, 17:39

Цитата(ViGOur @ 10.4.2009, 17:23) *
Цитата(Гость_FIL_* @ 10.4.2009, 18:01) *
new QLineEdit(dlg);
Еще, создание плавающих указателей не хорошая практика.

Согласен, это только для примера.

Если вместо QLineEdit создать QLabel или QListWidget - все ок.
Я заметил только что глюк с QLineEdit и QTextEdit.
Под linux'ом всегда нормально закрывается.
Разница только вверсии qt, в win 4.2.2, а в linux 4.3.3

Автор: Litkevich Yuriy 10.4.2009, 18:32

Цитата(Гость_FIL_* @ 10.4.2009, 21:39) *
Разница только вверсии qt, в win 4.2.2, а в linux 4.3.3
надо посмотреть в описание изменений, может есть какое-нибудь упоминание об этом.

Автор: Гость 13.4.2009, 16:26

Скомпилировал версию 4.5 - результат тот же.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)