我有一个 3 维数组,如何在没有 3 个循环的情况下将其初始化为默认值。
dummy[4][4][1024]
,如何将所有元素初始化为 12?
由于 3-d 数组是一个连续的内存块,因此您可以将其视为 1-d 数组
int i, *dummy2 = &dummy[0][0][0];
for(i = 0; i < 4*4*1024; ++i)
dummy2[i] = 12;
来吧伙计们-让我们以始终有效的简单方式来做:
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 4; j++)
{
for(int k = 0; k < 1024; k++)
{
dummy[i][j][k] = 12;
}
}
}
默认初始化为全零就是:
unsigned dummy[4][4][1024] = { 0 };
如果要初始化特定元素(以及所有其他元素为零),请执行此操作
unsigned dummy[4][4][1024] = { { { 5 }, { 0, 4 } } };
如果您的编译器知道 C99,请使用指定的初始化程序
unsigned dummy[4][4][1024] = { [3] = { [2] = { [0] = 7 }, [1] = { [2] = 3, [1] = 4 } } };
如果你真的坚持使用 all 12
,只需重复12
16384 次 :)