Выделение памяти для трехмерного массива - C (СИ)
Формулировка задачи:
Выделить память для трехмерного массива а[3][6][5]. Изменить индексы начального элемента массива на [1][1][1]. Протестировать программу
Решение задачи: «Выделение памяти для трехмерного массива»
textual
Листинг программы
int ***a;
a = (int ***)malloc(3*sizeof(int **));
for(i=0; i<3; i++) {
a[i] =(int *)malloc(6*siziof(int *));
for(j=0; j<6;j++)
a[i][j] = (int *)malloc(5*sizeof(int));
}
Объяснение кода листинга программы
- Объявляется трехмерный массив
aтипа int ***. - С помощью функции malloc(3*sizeof(int **)) выделяется память под массив из 3-х указателей на массивы из 6-ти элементов типа int.
- В цикле for(i=0; i<3; i++) инициализируются эти 3 указателя.
- Каждый из этих указателей используется в качестве индекса для выделения памяти под массив из 6-ти элементов типа int с помощью функции malloc(6*sizeof(int)).
- В цикле for(j=0; j<6;j++) инициализируются эти 6 массивов.