如何为 c++ 的不同变量类型的结构元素创建动态数组?

How do you create a dynamic array for struct elements of different variable types for c++?

本文关键字:创建 结构 元素 动态 数组 类型 变量 c++      更新时间:2023-10-16

我有以下结构:

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

您还可以在此答案中阅读有关此错误消息的更多信息