Я создал эту функцию для динамического выделения трехмерного массива.
int ***create_3D_Array(int nb_block, int nb_lin, int nb_col) {
int i, j;
int ***A = (int***)malloc(nb_block * sizeof(int**));
for (i = 0; i <nb_col; i++) {
A[i] = (int**)malloc(nb_col * sizeof(int*));
for (j = 0; j < nb_lin; j++) {
A[i][j] = (int*)malloc(nb_lin * sizeof(int));
}
}
return A;
}
Затем я использовал ее здесь
int ***all_blocks = NULL;
all_blocks = create_3D_Array(54, 5, 5);
Однако она работает неправильно, потому что, когда я хочу дать значение моего 6-го блока all_blocks[5]
, программа перестает работать.
Есть ли ошибки в моей функции?