可能重复:
返回包含数组的结构
我有一些简单的代码:
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;
}
一切都好。那么,第一个代码中的问题是什么?谢谢。
附言。我正在使用 gcc-4.7.0
pps。请注意,问题仅出现在 C 编译器中,使用 C++ 一切正常