Можно ли записать в виде отдельной функции выделение памяти под массив?: - C (СИ)
Формулировка задачи:
Можно ли записать в виде отдельной функции выделение памяти под массив?:
И еще вопрос, можно ли в функцию записать scanf? допустим вот этот код записать в виде отдельной функции:
Заранее спасибо
a = (int **) malloc (n * sizeof(int*));
for (i = 0; i < n; i++)
a [i] = (int *) malloc (m * sizeof(int)); printf ("\nВведите размер массива (высота, ширина):\n");
scanf_s("%d%d", &n, &m);Решение задачи: «Можно ли записать в виде отдельной функции выделение памяти под массив?:»
textual
Листинг программы
int ** alloc_array( size_t n, size_t m ) {
int **p;
...
return p;
}
Объяснение кода листинга программы
В данном коде определена функция alloc_array, которая выделяет память под двумерный массив (матрицу) целых чисел. Внутри функции объявлена переменная типа int ** p, которая будет указывать на выделенную память под массив. Дальнейший код функции, который здесь не представлен, занимается выделением памяти под массив и возвратом указателя на выделенную память. Возвращаемое значение функции – это указатель на выделенную память под массив. Таким образом, данная функция позволяет выделять память под массив в виде отдельной операции, что может быть полезным в некоторых случаях.