![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Bugrimov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 8.11.2012 Репутация: нет Всего: нет |
Доброе время суток!
Сейчас занимаюсь методами сортировки. Столкнулся с проблемой.
Программа аварийно закрывается при вызове функции. Кто работал с сортировками, подскажите пожалуйста где я мог допустить ошибку? |
|||
|
||||
NoviceF |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
Ну учитывая, что написано на Си, скорее всего - выход за границы массива. Откуда взят алгоритм? Либо ошибка в алгоритме, либо допущена ошибка, при переписывании. Прогон на дебаге поспособствует поиску места, где вылетает
![]() Добавлено через 3 минуты и 16 секунд Не проверял, но викки вряд ли станет обманывать, тут должно всё работать, перепишите свою функцию по аналогии http://ru.wikibooks.org/wiki/%D0%9F%D1%80%...B%D0%B0#C.2B.2B
Добавлено через 7 минут и 11 секунд Вообще есть хорошая книжка, рекомендую: Роберт Седжвик "Фундаментальные алгоритмы на с++". |
|||
|
||||
Bugrimov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 8.11.2012 Репутация: нет Всего: нет |
Видел я этот код, хотелось бы что отличное от него написать. Я по этому и обратился за советом. Я отдельно проверял, что выводят переменные. Я грешу на массив h. Никак не пойму почему не работает.
|
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
18-я строка кода
Не должно быть h[k-1]? |
|||
|
||||
Bugrimov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 8.11.2012 Репутация: нет Всего: нет |
||||
|
||||
Albor |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
Вы выделяете память под массив из m элементов:
Потом используете так
k=m - k индексирует элемент за пределами массива, поскольку индексация начинается с нуля, и поэтому h[k] пытается получить значение из-за пределов массива. Иногда такое срабатывает, тогда ошибку искать тяжелее. В суть вашего кода не вникал, потому и задал наводящий вопрос. Вообще-то, в режиме отладки вы и сами бы нашли причину, а так, врядли кому интересно дебажить ваш код. |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |