[英]How do you create a dynamic array for struct elements of different variable types for c++?
我有以下结构:
struct student {
char *firstName;
int exam1;
};
其余代码在主函数中。 我询问用户他们在一个班级中有多少学生并将其存储在 numStudents 中:
int numStudents;
cout << "How many students do you have in your class? ";
cin >> numStudents;
现在我必须创建一个动态数组来存储 numStudents 的名称,并要求用户输入之前输入的学生人数的姓名和考试分数。 这是我到目前为止的代码。 辛工作。 但是当我尝试输出时,系统就退出了。
student *ptr = new student[numStudents];
cout << "Enter name, exam1 for each student: ";
for(i = 0; i < numStudents; i++)
{
cin >> ptr[i].name;
cin >> ptr[i].exam1;
}
for(i = 0; i < numStudents; i++)
{
cout << ptr[i].name;
cout << ptr[i].exam1;
}
ptr 是数组而不是 ptr.name ......您实际上正在做的是将数组中第一项的属性视为数组。但事实并非如此。 您应该将其更改为:
student *ptr = new student[numStudents];
cout << "Enter name, exam1 for each student: ";
for(i = 0; i < numStudents; i++)
{
cin >> ptr[i]->name;
cin >> ptr[i]->exam1;
}
您还可以在此答案中阅读有关此错误消息的更多信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.