-1

問題があります。構造体の配列を宣言するように求められました。内部に構造体が 1 つあります。

typedef struct {
int a;
int b;
int c;
}blah;

int main()
{
    blah arr[1] = {{0, 0, 0}};
//...
}

上記の初期化は正しいですか?

4

2 に答える 2

1

はい、完全に正しいです。

長さ 1 の配列は、複数の要素を含む配列と大差ありません。それらはすべて集約型であり、それらの初期化は中括弧で囲む必要があります。配列に2つの要素がある場合、初期化は次のようになります

blah arr[2] = { {0, 0, 0}, {0, 0, 0} };
于 2012-08-15T14:25:40.770 に答える
0

はい。

明示的なイニシャライザを使用する場合は、サイズを指定する必要はありません。コンパイラに判断させます。

blah arr[] = { { 0, 0, 0 } };

ネストを少し明確にするためにスペースも含めました。

于 2012-08-15T14:25:05.397 に答える