Как упоминалось ранее, в этом конкретном случае выполнение чего-либо, кроме статического присвоения [6][22][7]
, было бы пустой тратой времени.Если вы действительно хотите динамически распределить массив, используя malloc
:
/* Suppose that you want a [5][22][6] */
int main() {
int i,j,k;
int ***boo;
int d_1,d_2,d_3;
d_1=5;
d_2=22;
d_3=6;
/*
+------------------------------------------+
| For each dimension, a malloc is needed |
+------------------------------------------+
*/
boo = malloc(d_1*sizeof(int*));
for (i=0;i<d_1;i++) {
boo[i] = malloc(d_2*sizeof(int*));
for (j=0;j<d_2;j++) {
boo[i][j] = malloc(d_3*sizeof(int*));
for (k=0;k<d_3;k++) {
boo[i][j][k] = i+j*k;
}
}
}
/*
+----------------------+
| Testing the values |
+----------------------+
*/
for (i=0;i<d_1;i++) {
for (j=0;j<d_2;j++) {
for (k=0;k<d_3;k++) {
printf("%d ",boo[i][j][k]);
}
printf("\n");
}
}
return 0;
}
Это, по сути, сработает.Это может быть полезно, если у вас больше данных.
Не забудьте освободить память, используя free()