我有一个Student
对象数组。我将数组长度设置为 100,但其中没有 100 个有效Student
对象。我希望能够遍历数组并获取所有有效Student
对象,然后在到达没有 Student 对象的数组单元格时停止。
我曾尝试NULL
在最后一个学生之后放入数组单元格,然后检查if (queriedStudents[i])
以及if(queriedStudents[i] != NULL)
,但都没有为我工作。
找到数组中已用部分末尾的最佳方法是什么?
Student *Welcome::queryStudents(int *queries) {
int query = 0;
Student *matchedStudents[100];
int matchedPos = 0;
while (queries[query] > 0) {
for (int i = 0; i < numStudents; i++) {
if (allStudents[i]->id == queries[query]) {
matchedStudents[matchedPos] = allStudents[i];
matchedPos++;
}
}
query++;
}
matchedStudents[matchedPos] = NULL;
return *matchedStudents;
}
我的代码块试图打印出每个Student
的值:
int i = 0;
while (i < 100) {
if (queriedStudents[i]) {
cout << "ID:\t" << queriedStudents[i]->id << endl;
cout << "Name:\t" << queriedStudents[i]->name << endl;
cout << "Addr.:\t" << queriedStudents[i]->address << endl;
cout << "Phone:\t" << queriedStudents[i]->phone << endl;
} else {
i = 100;
}
i++;
}