6

可能重复:
返回包含数组的结构

我有一些简单的代码:

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++ 一切正常

4

0 回答 0