可能重复:
返回包含数组的结构
我有一些简单的代码:
struct s {
char str[128];
};
struct s foo()
{
struct s s = { "some string" };
return s;
}
int main()
{
printf("%s\n", foo().str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是它会发出警告:
警告:格式'%s'需要'char*'类型的参数,但参数2的类型为'char [128]'[-Wformat]
如果我改变那样的主要功能
int main()
{
struct s s = foo();
printf("%s\n", s.str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
一切都好.那么,第一个代码中的问题是什么?谢谢.
PS.即时通讯使用gcc-4.7.0
PPS.请注意,问题只发生在C编译器上,C++一切正常