Я переводя код MATLAB в C, а преобразование script, я использую 3D-массивы с сложными записями 10 * 100 * 300. Размер массива также зависит от входного сигнала датчика, в идеале массив должен распределяться динамически. До сих пор я пробовал два подхода: первый - это плоский 1D-массив по линиям
value = array[x + (y*xSize) + (z*ySize*xSize)]
Который причиняет боль моему мозгу. Я также попробовал массив массива указателей
int main () {
int ***array = malloc(3*sizeof(int**));
int i, j;
for (i = 0; i < 3; i++) {
*array[i] = malloc(3*sizeof(int*));
for (j = 0; j < 3; j++) {
array[i][j] = malloc(3*sizeof(int));
}
}
array[1][2][1] = 10;
return 0;
}
Который дает ошибку seg при попытке назначить данные.
В идеальном мире я бы хотел использовать второй метод с обозначением массива для более чистого и простого программирования. Есть ли лучший способ динамического выделения трехмерного массива в C?