假设我有一个 9 维数组:
int arr[4][4][4][4][4][4][4][4][4];
我想把每个元素都初始化为1。
我知道我可以使用多个循环来初始化它:
for(int i1 = 0; i1 < 4; i ++) {
...// eight more similiar loops
}
但是看起来很丑。
这样做的最佳做法是什么?也许我可以使用宏?
最佳答案
在 C 中,多维数组是连续的,因此您可以通过指针初始化 arr 来利用这一点。
int* parr = (int*)arr;
for (int i = 0; i < ((sizeof(arr)/sizeof(int)); ++i)
parr[i] = 1;
请注意,这在数组分解为指针的情况下不起作用(例如,如果它作为参数传递给函数)。
关于c - 在 C 中初始化高维数组的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22800797/