3 次元配列があります。3 つのループを使用せずにデフォルト値に初期化するにはどうすればよいですか。
dummy[4][4][1024]
、すべての要素を 12 に初期化するにはどうすればよいですか?
3 次元配列があります。3 つのループを使用せずにデフォルト値に初期化するにはどうすればよいですか。
dummy[4][4][1024]
、すべての要素を 12 に初期化するにはどうすればよいですか?
3 次元配列はメモリの連続ブロックであるため、1 次元配列として表示できます。
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 を使用したい場合は、 16384 回12
繰り返してください :)12