Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
wondered
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 26
1

Ошибка выделения памяти под массив

18.03.2014, 20:54. Просмотров 531. Ответов 1
Метки нет (Все метки)

Есть двумерный массив. Создается он таким образом:
C
1
2
3
4
5
6
7
int **createArray(int m, int n) {
    int i, **arr;
    arr = (int **)calloc(m, sizeof(int *));
    for (i = 0; i < m; i++)
        arr[i] = (int *)calloc(n, sizeof(int));
    return arr;
}
m - количество строк, n - количество столбцов
Пытаюсь создать огромный массив (в качестве m и n болшое количество девяток). Крашится на строке
C
1
arr = (int **)calloc(m, sizeof(int *));
с ошибкой:
Ошибка выделения памяти под массив

В доках сказано что при неудачном выделении памяти указатель вернёт NULL, но программа просто крашится. Как решить? Точнее сказать как мне отследить что пользователь пытается создать огромный массив и вывести соответствующие сообщение.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 20:54
Ответы с готовыми решениями:

Каков механизм выделения битов под участок памяти
Кто нибудь знает механику выделения битов под участок памяти? Суть в чем: Объявил функцию, в...

Приведите свой вариант оптимального выделения памяти под 2 матрицы
В коде надо выделить память под 2 матрицы. Возникло несколько вопросов: 1)Там где память...

Ошибка в выделении памяти под 3х мерный массив
Здравствуйте. Мне нужна трехмерная таблица для реализации одного метода... Мне нужна реализация для...

Распределение памяти для выделения и освобождения блоков памяти внутри запрошенного пула
В программе малые&quot;дыры&quot; избегают,что нужно сделать что бы малые &quot;дыры&quot; не избегались.... #...

Выделение памяти под динамический массив
Нужна помощь, кому не трудно откликнитесь. Нубас вообще в указателях и выделении памяти. ...

1
korvin_
2370 / 1839 / 338
Регистрация: 28.04.2012
Сообщений: 6,387
18.03.2014, 21:02 2
Ну и проверяй m и n в createArray, чтоб не были слишком большими и, например, возвращай NULL в таком случае.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2014, 21:02

Выделение памяти под трехмерный массив
Здравствуйте. Выделяю память под трехмерный массив, но не получается обратиться к элементу...

Выделение памяти динамически под массив
Есть программа, нужно выделить динамически память под массив, все попытки сделать это...

Динамическое выделение памяти под массив
Здравствуйте, помогите пожалуйста сделать в процедуре input динамическое выделение памяти под...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru