int x[1000] = {0, };
これは初期化に関するもので、右側にオペランドがない,が表示されます。
コンパイラがエラーを報告します。
CとC++の両方とは異なるかもしれない(?)と思い、両方にタグを付けています。
ISO/IEC 9899:TC3 6.7.8 初期化より
26 例 3
宣言
int y[4][3] = {
{ 1, 3, 5 },
{ 2, 4, 6 },
{ 3, 5, 7 },
};
完全に括弧で囲まれた初期化を伴う定義です: 1、3、および 5 は、y の最初の行 (配列オブジェクト y[0])、つまり y[0][0]、y[0][1]、および y を初期化します。 [0][2]。同様に、次の 2 行は y[1] と y[2] を初期化します。初期化子は早期に終了するため、y[3] はゼロで初期化されます。正確に同じ効果が達成された可能性があります
int y[4][3] = {
1, 3, 5, 2, 4, 6, 3, 5, 7
};
y[0] の初期化子は左中かっこで始まらないため、リストの 3 つの項目が使用されます。同様に、次の 3 つは y[1] と y[2] に対して連続して取得されます。
したがって、少なくとも c99 では完全に合法です。