Это
{"Bob", "Smith"}, {11, "519-688-5168"}, {88, 75, 78}
- это то, что вы использовали бы, если бы вы определяли и инициализировали один Student
объект:
Student student = {
{"Bob", "Smith"}, {11, "519-688-5168"}, {88, 75, 78}
};
Однако вы пытаетесь инициализировать массив из Student
объектов, поэтому каждый элемент должен быть в скобках:
Student class_list[MAX_CLASS_SIZE] = {
{ {"Bob", "Smith"}, {11, "519-688-5168"}, {88, 75, 78} }
// 1 2 3 4
};
1: Student
инициализатор объекта.
2: Name
инициализатор объекта.
3: Info
инициализатор объекта.
4: Mark
инициализатор объекта.
С учетом вышесказанного вам следует избегать использования C-строк. Используйте std::string
вместо:
#include <string>
struct Name {
std::string fname;
std::string lname;
};
struct Info {
int grade;
std::string phone;
};
struct Mark {
int math;
int sci;
int eng;
};
struct Student {
Name n;
Info i;
Mark m;
};
int main()
{
Student class_list[MAX_CLASS_SIZE] = {
{ {"Bob", "Smith"}, {11, "519-688-5168"}, {88, 75, 78} }
};
}