Вы забыли объявить тип I_object
.Также вам нужно объявить i
, j
, k
и l
.Кроме того, я бы не стал приводить результат malloc в C .Кроме того, уровни косвенности неправильны в ваших sizeof()
вызовах, что вызывает проблему в последнем, где может быть разница между размерами double
и double*
.
Сэти изменения выглядят так:
#define N_GROUPS 3
#define NN 3
int main() {
double *****I_object = malloc(sizeof(double ****)*N_GROUPS);
for (size_t i = 0; i < N_GROUPS; i++) {
I_object[i] = malloc(sizeof(double***)*NN);
for (size_t j = 0; j < NN; j++) {
I_object[i][j] = malloc(sizeof(double**)*NN);
for (size_t k = 0; k < NN; k++) {
I_object[i][j][k] = malloc(sizeof(double*)*NN);
for (size_t l = 0; l < NN; l++) {
I_object[i][j][k][l] = malloc(sizeof(double)*NN);
}
}
}
}
}
Кроме того, для будущих вопросов я бы рекомендовал опубликовать Минимальный, Полный и Проверяемый пример .Таким образом, люди гораздо охотнее (и способны) помочь.Например, я должен был сделать предположения о N_GROUPS
и NN
.Даже при низких значениях, таких как 100
для NN
, потребление памяти уже будет настолько высоким, что это может вызвать проблемы, но без MCVE трудно сказать.