Автор: 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 - результат тот же.