私はオブジェクトの配列を持っていStudent
ます。Student
配列の長さを 100 に設定しましたが、有効なオブジェクトが 100 個ありません。Student
配列を反復処理してすべての有効なオブジェクトを取得し、Student オブジェクトを持たない配列セルに到達したら停止できるようにしたいと考えています。
NULL
最後の Student の後に配列 cellを入れてみましたが、 と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++;
}