Я думаю, у вас могут быть проблемы с тем, как вы создаете свою функцию. Обычно, когда вы объявляете массив структур, он выглядит следующим образом.
struct Student {
int uid;
string name;
};
Student studentArry[3];
Вы бы использовали 'Student' или имя вашей структуры для инициализации массива. Например, int arr [10] - это целочисленный массив размера 10, а Student arr [10] - это массив ученика размера 10.
Еще одно замечание, если вы пытаетесь создать функцию, которая передается структура, вы должны инициализировать структуру, прежде чем определить функцию. Этот код будет работать, потому что структура была объявлена до того, как функция была.
#include <iostream>
using namespace std;
struct Student {
int uid;
string name;
};
void print(Student array[], int size){
for(int i = 0; i < size; i++){
cout << array[i].uid << endl;
cout <<array[i].name<< endl;
}
};
int main(){
Student StudentRecords[2] = {
{19, "John Smith"},
{21, "Jim Pop"}
};
print(StudentRecords, 2);
return 0;
}
Код ниже не будет, потому что функция печати не знает, какой тип ученик.
#include <iostream>
using namespace std;
void print(Student array[], int size){
for(int i = 0; i < size; i++){
cout << array[i].uid << endl;
cout <<array[i].name<< endl;
}
};
int main(){
struct Student {
int uid;
string name;
};
Student StudentRecords[2] = {
{19, "John Smith"},
{21, "Jim Pop"}
};
print(StudentRecords, 2);
return 0;
}
Итак, в общем, я думаю, вам нужно изменить способ создания параметра для функции и, возможно, место, где вы объявляете свою структуру.