Передача двумерного массива структур по ссылке в переполнении стека

Так что я довольно новичок в 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
}

-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;
1

Другие решения

Других решений пока нет …