gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 14:48:46 25 4
gpt4 key购买 nike

我有以下结构:

struct student {
char *firstName;
int exam1;
};

其余代码在主函数中。
我询问用户他们在一个类(class)中有多少学生并将其存储在 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;
}

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

关于c++ - 如何为 C++ 的不同变量类型的结构元素创建动态数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60200597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com