問題があります。構造体の配列を宣言するように求められました。内部に構造体が 1 つあります。
typedef struct {
int a;
int b;
int c;
}blah;
int main()
{
blah arr[1] = {{0, 0, 0}};
//...
}
上記の初期化は正しいですか?
問題があります。構造体の配列を宣言するように求められました。内部に構造体が 1 つあります。
typedef struct {
int a;
int b;
int c;
}blah;
int main()
{
blah arr[1] = {{0, 0, 0}};
//...
}
上記の初期化は正しいですか?
はい、完全に正しいです。
長さ 1 の配列は、複数の要素を含む配列と大差ありません。それらはすべて集約型であり、それらの初期化は中括弧で囲む必要があります。配列に2つの要素がある場合、初期化は次のようになります
blah arr[2] = { {0, 0, 0}, {0, 0, 0} };
はい。
明示的なイニシャライザを使用する場合は、サイズを指定する必要はありません。コンパイラに判断させます。
blah arr[] = { { 0, 0, 0 } };
ネストを少し明確にするためにスペースも含めました。