重複の可能性:
配列を含む構造体を返す
私はいくつかの簡単なコードを持っています:
struct s {
char str[128];
};
struct s foo()
{
struct s s = { "some string" };
return s;
}
int main()
{
printf("%s\n", foo().str);
return 0;
}
しかし、それは警告を実行します:
警告: フォーマット '%s' はタイプ 'char *' の引数を想定していますが、引数 2 のタイプは 'char[128]' です [-Wformat]
そのようにメイン関数を変更すると
int main()
{
struct s s = foo();
printf("%s\n", s.str);
return 0;
}
全て大丈夫。では、最初のコードの問題は何でしょうか? ありがとう。
ps。gcc-4.7.0を使用しています
pps。注意してください、問題は C コンパイラでのみ発生し、C++ ではすべて問題ありません