私は3つの要素の配列を持っています。しかし、私はそれらのうちの2つを初期化したいだけです。 3番目の要素を空白にします。C言語の配列で初期化されていない要素の値
unsigned char array[3] = {1,2,};
int main(){
printf("%d",array[2]);
return 0;
}
印刷結果は0です。これをIARと一部のオンラインコンパイラでテストしました。
3番目の要素の値にはCルールがありますか? 3番目の要素を0xFFで埋めるコンパイラはありますか? (特にクロスコンパイラ)
実際に質問には答えません。 OPは、未定義のインデックスがどのような値で初期化されているかについてのルールがあるかどうかを知りたがっており、コンパイラは暗黙的にそれらを0xFFに初期化します(標準準拠のコンパイラはそうしません)。 –