Главная /
Программирование на языке C в Microsoft Visual Studio 2010 /
В процессе выполнения приведенной программы возникает ошибка: #include <stdio.h> #include <stdlib.h> #define N 10 int main(void) { int i; int *arr; arr = (int *)calloc(N, sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in calloc() fun
В процессе выполнения приведенной программы возникает ошибка:
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main(void)
{
int i;
int *arr;
arr = (int *)calloc(N, sizeof(int));
if (!arr) {
printf("\nERROR! Out of memory in calloc() function. Press any key: ");
_getch();
exit(1);
};
for (i=0; i<N+2; i++) {
arr[i] = i+1;
printf("arr[%d] = %d\n", i, arr[i]);
}
free(arr);
return 0;
}
Каким образом можно изменить программу для ее корреткной работы?
вопрос
Правильный ответ:
выделить больший размер памяти в функции
calloc()
добавить операцию перераспределения памяти
изменить процедуру заполнения массива, изменив условие выхода из цикла на
i<N
Сложность вопроса
58
Сложность курса: Программирование на языке C в Microsoft Visual Studio 2010
62
Оценить вопрос
Комментарии:
Аноним
просто спасибо
10 июн 2017
Другие ответы на вопросы из темы программирование интуит.
- # Каким образом нумерются разряды байта?
- # Какое утверждение является верным для приведенного фрагмента кода? int x; printf("Угадайте число:\n"); for (x=0; x!=123; ) scanf("%d", &x);
- # В результате выполнения какого фрагмента кода на экран будут выведены 5 строк по 5 звездочек?
- # Какой объем памяти будет выделен для хранения массива int arr[12] = {1,2,3,4,5};?
- # Под какой массив выделяется память в приведенном фрагменте кода? int (*p)[10]; p = malloc(40*sizeof(int));