вылетает на QVector::reserve, где косяк? |
Здравствуйте, гость ( Вход | Регистрация )
вылетает на QVector::reserve, где косяк? |
mezmay |
11.8.2011, 8:54
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Есть кусок кода, вылетает на последней строчке:
Почему это может быть? Причем если закомментировать цикл
то перестает вылетать, хотя в этом цикле нет ничего связанного вектором vvBlocks Сообщение отредактировал mezmay - 11.8.2011, 9:03 |
|
|
Алексей1153 |
12.8.2011, 6:11
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
0) либо vvBlocks[0].size() безумно большое значение
1) либо m_lengthCoeff равно 0 2) а то и всё выражение возвращает большое значение На что отладчик то ? И какое сообщение показывается в дебаге при вылете ? Сообщение отредактировал Алексей1153 - 12.8.2011, 6:14 |
|
|
mezmay |
12.8.2011, 8:46
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
|
|
|
Алексей1153 |
12.8.2011, 10:49
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
mezmay, порушена куча. Ты где-то неправильно работаешь с контейнером. А по твоей программе сразу сложно понять, где, распиши, что где делается
или, как вариант, у тебя m_vBlocksLength.size()==1 ты обращаешься по индексу, не проверив размер массива vvBlocks[1].reserve.... |
|
|
mezmay |
12.8.2011, 12:58
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
перенес этот код в отдельную программу, все работает. Следовательно, косяк где-то в другом месте. Наверное, как ты и сказал где-то рушится куча. Не подскажешь как в visual studio это отследить?
|
|
|
mezmay |
12.8.2011, 15:03
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Ура!!! Решил проблему! Короче дело обстояло так: в потоке обрабатывался файл, и информация о ходе обработки посылалась в основной поток с помощью событий и соответственно функции QCoreApplication::postEvent(). Проблема была в том что я создавал объект события статически, а в документации сказано:
The event must be allocated on the heap since the post event queue will take ownership of the event and delete it once it has been posted. It is not safe to modify or delete the event after it has been posted. надо было вовремя читать документацию. Спасибо тебе Алексей1153, без твоей помощи я бы наверное не обратил на это внимания! Сообщение отредактировал mezmay - 12.8.2011, 15:05 |
|
|
Алексей1153 |
12.8.2011, 19:25
Сообщение
#7
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
mezmay, я случайно ))
|
|
|
Текстовая версия | Сейчас: 18.4.2024, 17:24 |