![]() |
|
Модераторы: bsa |
![]()
|
|
| Enelar |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 13.1.2008 Репутация: нет Всего: 1 |
пишу хаффмана, в чем ошибка?
В функции Budding trees в free повреждение кучи происходит. |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
проверь указатели, индексы массива, преобразования, возвращаемые значения. ошибка в них. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Можно перегрузить оператор new глобально и определить номер выделения памяти который при удалении падает, затем при выделении этого же блока во второй раз записать адрес где было выделено, затем включить окно просмотра памяти и идти дебагом. В определенный момент память должна потереться и это будет отмеченно красным. Вот эта строчка и будет вредной. Ошибка скорее всего переход за границу массива.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Enelar |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 13.1.2008 Репутация: нет Всего: 1 |
эх, ребята если бы... я бы не обращался. Указатель приходит валидный, в массиве, с нормальными данными. Выдает ошибку даже если делать
массив точно создается. проблема именно при вызове функции, тк вне нее все классно очищается. |
||||
|
|||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Неверный вывод. Там происходит определение того что куча навернулась. Немного пояснения. В дебаге память выделяется с запасом. До и после блока данных пишут сигнатуры. После выделения памяти сигнатуры на месте. Перед освобождением памяти сигнатуры проверяются. Если был выход за границу то сигнатура портится и отладка аварийно завершается. Так что указанная функция не имеет ничего общего с процессом порчи кучи. Она может портиться в любом месте программы. Следует определить сначала какая именно это переменная, затем поставить брейки везде где ее меняют, затем под дебагом смотреть память выше и ниже блока. В момент порчи там изменятся данные и "враг будет найден". -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Enelar |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 13.1.2008 Репутация: нет Всего: 1 |
что то новое для меня... просто передвинуть указатель чуть раньше?
хорошо, почему когда я пишу
все работает, а когда
все плохо. как видно я не изменяю переменную, а проблема в передаче |
||||||
|
|||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Окно просмотра памяти. Переходишь по адресу и смотришь прямо дамп памяти как есть. трудно по фрагментам что-то судить. Такие ошибки одни из самых трудноуловимых. Могут вредить в любом месте, а всплывать в совершенно другом. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
|
|||
|
||||
| Enelar |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 13.1.2008 Репутация: нет Всего: 1 |
ошибка вылетала при первом фри решение нашел сам, отписаться забыл
Вот такой был код)) |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |