Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 3
1

Ошибка выхода за границы памяти

27.09.2017, 18:42. Показов 860. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При вызове функции сортировки слиянием (код прилагаю) происходит ошибка:

Вызвано исключение: нарушение доступа для записи.
tmp было 0x1110112.
Если для этого исключения имеется обработчик, выполнение программы может быть продолжено безопасно.


Никак не могу понять в чем проблема. Ошибка возникает, когда я задаю количество элементов, равное 100000 и больше. До 10000 функция работает.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void mergeSort(long int *mass,long int left, long int right)     
{
    if (left == right) return; // границы сомкнулись
     long int middle = (left + right) / 2; 
    mergeSort(mass, left, middle);
    mergeSort(mass, middle + 1, right);
     long int i = left; 
long    int j = middle + 1;
     long int *tmp = ( long int*)malloc(right * sizeof( long int)); 
    for ( long int step = 0; step < right - left + 1; step++){
        if ((j > right) || ((i <= middle) && (mass[i] < mass[j])))
        {
            tmp[step] = mass[i];
            i++;
        }
        else
        {
            tmp[step] = mass[j];
            j++;
        }
    }
    for (long int step = 0; step < right - left + 1; step++) {
        mass[left + step] = tmp[step];
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2017, 18:42
Ответы с готовыми решениями:

Работа со строками в памяти остается строки после выхода из программы
Суть такова программа работает при первом запуске норм , но после второго чушь какая получается ....

Контроль выхода за границы памяти при заполнении поля класса
Доброго времени суток В классе есть поле, представляющее собой динамический массив. Есть метод,...

Ошибка выхода за границы массива, когда её быть не должно
Вот функция: public IntPtr getmas() { char chars =...

Ошибка выхода за пределы памяти в дебаге, в релизе ОК
Пишу код, &quot;для себя&quot;, так скажем. пытаюсь практиковаться. Балуюсь, другими словами. В релизе то,...

1
Заблокирован
28.09.2017, 17:51 2
Цитата Сообщение от happylina Посмотреть сообщение
mass
локальный?
0
28.09.2017, 17:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2017, 17:51
Помогаю со студенческими работами здесь

Проверка выхода курсора за границы консоли
Помогите, пожалуйста, решить задачку: • метод инициализации Init; метод должен контролировать...

Реализация защиты выхода за границы массива
Доброго времени! Прошу помочь разобраться с вопросом возникшим, при изучении C++. Я только начинаю...

Вывод текст в Lable без выхода за границы
Здравствуйте. Пишу программу. Не получается красивый вывод результата в Lable(Можно в другой...

Помогите исправить ошибку выхода за границы массива
Проблема состоит в следующем - необходимо добавить строки в конец рваного массива. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru