在C ++中通过引用传递Structs的2D数组

时间:2012-09-28 20:08:41

标签: c++ arrays function reference 2d

这对于c ++来说是非常新的,我试图通过引用函数来传递结构类型的2D数组。据我所知,他们会自动通过引用传递。这是我的代码。问题可能很明显,但我无法弄明白。编译器一直说变量或字段“function”声明为void,而bArray未在此范围内声明。

void function(balloons bArray[][5]);

int main()
{
    struct balloons
    {
           float totalWeight;
        float largestBalloon;
    };
      balloons balloonsArray[20][5];

    function(balloonsArray);
} 

void function(balloons bArray[][5])
{
    bArray[1][1].totalWeight = 1.0
    bArray[1][1].largestBalloon = 1.0
}

1 个答案:

答案 0 :(得分:1)

您在struct内定义了main,代码的其他部分也需要使用它。将定义移到函数外部:

struct balloons
{
       float totalWeight;
    float largestBalloon;
};

void function(balloons bArray[][5]);

int main()
{
    // ...

你还没有在你的函数中终止这两个语句,那里你需要分号:

bArray[1][1].totalWeight = 1.0;
bArray[1][1].largestBalloon = 1.0;