Так что я довольно новичок в c ++, и я пытаюсь передать 2D-массив типа struct по ссылке на функцию. Насколько я знаю, они автоматически передаются по ссылке. Вот мой код. Проблема, вероятно, очевидна, но я не могу понять это. Компилятор продолжает говорить, что переменная или поле «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
}
Вы определяете свой 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;
Других решений пока нет …