如何访问结构数组中的第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 (将#修改为@)