次の C 関数を使用して 4D 配列をエミュレートしています。追加のループを追加する以外に、この関数を n 次元配列を作成するのに十分な汎用にする良い方法はありますか?
double ****alloc_4D_data(int wlen, int xlen, int ylen, int zlen)
{
int i,j,k;
double ****ary = (jdouble****)malloc(wlen*sizeof(jdouble***));
for (i = 0; i < wlen; i++)
{
ary[i] = (jdouble***)malloc(xlen*sizeof(jdouble**));
for (j = 0; j < xlen; j++)
{
ary[i][j] = (jdouble**)malloc(ylen*sizeof(jdouble*));
for (k = 0; k < ylen; k++)
{
ary[i][j][k] = (jdouble*)malloc(zlen*sizeof(jdouble));
}
}
}
return ary;
}