![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AD |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Что-то я не понимаю, что за ерунда происходит: делаю проверку на isNull(), на isEmpty() - все это компилятор проглатывает, а строка так и остается невалидной. При присвоении другой строке он вылетает. Как исправить это глюк?
|
|
|
![]() |
Tonal |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: ![]() ![]() ![]() |
2 AD
Скорее всего строка тут не причём. ![]() Подобные вещи происходят тогда, когда ты разрушил память - кучу или стек. Например вылетел за границы массива, дважды удалил один и тот же объект, или просто поработал по неинециализированному указателю. Вот программа и валится в самых неожиданных местах. 2 void* Если конструктор вызвался - объект уже инициализирован. В QString() все данные корректно инициализируются, так что мусора там быть не может. Кроме случаев удара по памяти. ![]() Сообщение отредактировал Tonal - 6.8.2008, 7:15 |
|
|
AD |
![]()
Сообщение
#3
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
2 AD Скорее всего строка тут не причём. ![]() Подобные вещи происходят тогда, когда ты разрушил память - кучу или стек. Например вылетел за границы массива, дважды удалил один и тот же объект, или просто поработал по неинециализированному указателю. Вот программа и валится в самых неожиданных местах. да я и указатель проверяю, естественно. Он в этот момент валидный, а строка почему-то нет! ![]() Вот так это выглядит в дебаггере: [attachment=164:debugger.JPG] |
|
|
AD |
![]()
Сообщение
#4
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
2 AD Скорее всего строка тут не причём. ![]() Подобные вещи происходят тогда, когда ты разрушил память - кучу или стек. Например вылетел за границы массива, дважды удалил один и тот же объект, или просто поработал по неинециализированному указателю. Вот программа и валится в самых неожиданных местах. Проблема решена. Tonal, был прав! ![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 14.7.2025, 20:46 |