Следующая функция выделяет память для вашего динамического массива.elem_size
- это размер для каждого элемента, n
относится к размеру первого измерения, остальные два размера имеют размер 128
.
void* create_3Darray(size_t elem_size, size_t n) {
return malloc(elem_size * n * 128 * 128);
}
Использование:
int ***arr = create_3Darray(sizeof(int), 256);
arr[2][5][12] = 12;
Вы можете заменить malloc
на calloc
, чтобы инициализировать элементы 0
, в противном случае массив может быть заполнен случайными значениями.
Также следует соблюдать осторожность, чтобы не читать и не записывать массивы/ размеры границы.