Qt и mysql++ (ошибка сегментирования), Ошибка сегментирования при запуске проекта |
Здравствуйте, гость ( Вход | Регистрация )
Qt и mysql++ (ошибка сегментирования), Ошибка сегментирования при запуске проекта |
tin_gimranoff |
19.10.2010, 17:28
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 19.10.2010 Пользователь №: 2127 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем доброго времени суток. Помогите плз... пишу вот такой код:
И когда дело доходит до этого события то проект вылетает вместе с QtCreator'ом с ошибкой сегментирования. Причём точно знаю что ошибку вызывает строка if(!test_connect.connect("information_schema", HostName, UserName, UserPass, DataBasePort)) Почему так происходит, объясните плз, и как это дело исправить? Заранее СПС!!!!
Причина редактирования: пользуйся тегами
|
|
|
Алексей1153 |
20.10.2010, 10:21
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
tin_gimranoff, это потому, что сохраняешь указатель на локальные данные
ошибка тут
text() возвращает QString, созданный на стеке. Ты берёшь адрес начала данных. Затем, по выходу из функции объект убивается, а указатель указывает на невалидные данные - и где-то потом, в обработчике сообщения кто-то пытается получить доступ к этому мусору тут выход такой:сделать QString HostName QString UserName QString UserPass членами класса (new_connect , например) . Можно даже в одну структурку их определить. Так решится проблема потери валидности данных |
|
|
Текстовая версия | Сейчас: 22.12.2024, 8:27 |