2012-09-28 181 views
-1

对于C++来说,这很新颖,我试图通过引用一个函数来传递一个结构类型的二维数组。据我所知他们是通过引用自动传递的。这是我的代码。问题可能很明显,但我无法弄清楚。编译器不断声明变量或字段“function”声明为void,并且bArray未在此范围内声明。在C++中通过引用传递二维二维数组结构

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

你定义你structmain,你的代码的其他部分也需要使用它。移动定义的功能外:

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; 
+0

定义之后,这个名字'balloons'是允许并且通常优选。注意'C++'标记... –

+0

@PeteBecker谢谢,错过了C++标记 – pb2q

+0

我做了以下更改,并且仍在收到proj1.cpp:18:错误:变量或字段'function'声明为void proj1.cpp:18:错误:期望')'之前'bArray' proj1.cpp:在函数'int main()'中: proj1.cpp:30:错误:'function'未在此范围内声明 – BLake