【问题标题】:Array too many initializer values数组的初始值设定项太多
【发布时间】:2017-09-28 18:34:53
【问题描述】:

我有一个函数声明如下

void set_values(float values[4][4]);

如果我这样调用函数,一切正常。

float values[4][4] = {
    { 1, 2, 3, 4 },
    { 1, 2, 3, 4 },
    { 1, 2, 3, 4 },
    { 1, 2, 3, 4 } 
};
mat1.set_values(values);

但是我认为我可以将花括号中声明的数组直接传递给函数,如下所示:

    mat1.set_values({
        { 1, 2, 3, 4 },
        { 1, 2, 3, 4 },
        { 1, 2, 3, 4 },
        { 1, 2, 3, 4 } 
    });

但这给了我一个编译错误too many initializer values

为什么第一个代码有效,而第二个无效?

【问题讨论】:

标签: c++ arrays


【解决方案1】:

您的函数需要一个数组对象,而不是此类对象的初始化列表。

【讨论】:

    猜你喜欢
    • 2020-05-15
    • 2021-06-03
    • 2020-05-04
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 2019-04-16
    相关资源
    最近更新 更多