微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何访问结构数组中的第n个元素

如何解决如何访问结构数组中的第n个元素

我有一个程序,要求我创建一个保存学生信息的结构。要求说使用指针并动态分配StudentInfo结构的数组。现在,我只想存储每个学生的ID号。我想我正确地存储了数字,但是当我尝试显示ID号时,我遇到了问题。

using namespace std;

struct StudentInfo
{
    string Name = "";
    int Idnum = 0;
    int* Tests = { 0 };
    double Average = 0.0;
    char Grade = 'z';
};

int main() {

    int numberOfStudents = 0,numberOfTests = 0;

    cout << "Enter the number of students: ";
    cin >> numberOfStudents; 
    cout << "Enter the number of tests: ";
    cin >> numberOfTests;

    StudentInfo* students = nullptr;
    students = new StudentInfo[numberOfStudents];

    for (int i = 0; i < numberOfStudents; i++) {
        cout << "Enter the student ID: ";
        cin >> students[i].Idnum;
    }

    cout << students[2]->Idnum;
    
    return 0;
}

例如,假设我有3个学生,并且id分别为123、456和789。我将如何获得cout语句来显示789?

编辑: 下面列出了编译器错误

1>------ Build started: Project: Chap11Num12,Configuration: Debug Win32 ------
1>Chap11Num12.cpp
1>C:\Users\mstew\Desktop\CIS2541\week10\Chap11Num12\Chap11Num12.cpp(41,21): error C2819: type 'StudentInfo' does not have an overloaded member 'operator ->'
1>C:\Users\mstew\Desktop\CIS2541\week10\Chap11Num12\Chap11Num12.cpp(14): message : see declaration of 'StudentInfo'
1>C:\Users\mstew\Desktop\CIS2541\week10\Chap11Num12\Chap11Num12.cpp(41,21): message : did you intend to use '.' instead?
1>C:\Users\mstew\Desktop\CIS2541\week10\Chap11Num12\Chap11Num12.cpp(41,28): error C2232: '->StudentInfo::Idnum': left operand has 'struct' type,use '.'
1>Done building project "Chap11Num12.vcxproj" -- Failed.
========== Build: 0 succeeded,1 Failed,0 up-to-date,0 skipped ==========

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。