C では、次の 3 次元のような n 次元配列を宣言したいと考えています。
printf("please insert n1, n2, n3\n");
scanf("%d %d %d", &n1, &n2, &n3);
int ***nda;
nda = (int ***)malloc(n1*sizeof(int **));
for (i = 0; i < n1; i++) {
nda[i] = malloc(n2*sizeof(int *));
for (j = 0; j < n2; j++) {
nda[i][j] = malloc(n3*sizeof(int));
}
}
マクロを使用してこのプロセスを自動化し、n-dim に展開したいのですが、次のようなポインターを宣言する必要があることがわかりました。
type *...*(n times)typename;
マクロはこれを行うための一見可能な方法だと思いますが、ここで回答を検索した後、マクロは再帰的に展開されないことがわかりました。
Cでこれを行うための回避策はありますか?