関数から aを返す必要がある場合struct
、通常はstruct
代わりにへのポインターを返します。
構造体の配列を返したい場合は、次のことをお勧めします。
- 構造体の配列を返す (最初の要素へのポインタ)
- または構造体ポインターの配列を返しますか?
以下の 2 つのオプションの図を作成しました。
1:
2:
次の構造体定義が与えられた場合
struct values {
int a;
int b;
};
2 つのオプションから構造体のフィールドにアクセスするためのサンプル コードを次に示します。
オプション1:
struct values *vals = get_values1();
printf("%d, %d\n", values[0].a, values[1].b);
オプション #2:
struct values **vals = get_values2();
printf("%d, %d\n", values[0]->a, values[1]->b);