![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
MaXL |
|
||||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
Всем привет. Вот пытаюсь написать алгоритм сортировки слиянием, но чо-то у меня никак не выходит.
В процедуре Merge, которая "сливает" подмассивы я динамически создаю два массива, а потом пытаюсь их удалить на вылетает ошибка, и не понятно на что они там ругаются =( Вот блок кода, из-за которого это происходит:
Вот сообщение об ошибки: Windows has triggered a breakpoint in sort.exe. This may be due to a corruption of the heap, which indicates a bug in sort.exe or any of the DLLs it has loaded. This may also be due to the user pressing F12 while sort.exe has focus. The output window may have more diagnostic information. Я так понимаю что тут произошло что-то с кучей, а вот как от этого избавиться ? Ну и когда размер массивы велик(ну хотябы 500 элементов) и при этом отсуствует блок кода, который я привёл выше, то программа вылетает с другой ошибкой: Run-Time Check Failure #2 - Stack around the variable 'arr' was corrupted.(это в дебаг режиме такое даёт). Ну а вот собственно привожу полностью код(в процедуре merge я использую числа 99999, пока только для наглядности):
Это сообщение отредактировал(а) MaXL - 24.1.2008, 07:13 -------------------- MaXL |
||||
|
|||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Начнём с того, что в твоём случае нужно писать delete [] XXX;
![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
MaXL |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
archimed7592, я пробовал писать и так но оно всё равно ничего не дало(относительно этой ошибки), ошибка как появлялась, так и осталась появляться.
-------------------- MaXL |
|||
|
||||
ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 1 Всего: 14 |
MaXL, индексация в массивах начинается с 0.
-------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
_stranger_ |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 3.10.2006 Где: город-герой Киев Репутация: 2 Всего: 2 |
||||
|
||||
MaXL |
|
||||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
ptr, пасиб, но это я знаю.
Просто у меня не получилось реализовать эту сортировку с массивами где индексация идёт с нуля =( (привык к Паскалю). Знал о том что индексация с нуля начинается, а вот даже и не задумывался =( вот сделал, вроде бы не ругается. Вот изменённые куски процедуры Merge:
Ну и ошибка с массивом arr решилась также:
Всем спасибо. Вопрос решён! Это сообщение отредактировал(а) MaXL - 24.1.2008, 11:45 -------------------- MaXL |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |