7

コンパイラからのこのメッセージは、慎重に検討する必要があるかどうか疑問に思っています。

次のコードを見てみましょう。

struct s
{
  int a;
  int b[];
};

void fun(struct s c)
{
}

int main()
{
  return 0;
}

次のエラーが発生します。

main.c:7:6: note: the ABI of passing struct with a flexible array member has changed in GCC 4.4

私の質問は次のとおりです。より大きなプロジェクトでそのような構造を使用しても安全ですか? そのような構造の可能性のあるリスクと影響は何ですか (コンパイラ メッセージ以外に)?

4

1 に答える 1

-2
  1. メモリに関しては、この関数を呼び出すたびに構造体変数が作成されるため、メモリが浪費されます。
  2. プロジェクトに struct sc または struct s &c が必要かどうかを確認してください。
于 2013-04-09T10:50:57.067 に答える