CourseList* courseList[100]
erstellt keinen Zeiger auf ein Array, es erstellt ein Array von Zeigern. Je nachdem, was Sie eigentlich wollen, sollten Sie eine der folgenden
Eine Reihe von CourseList
s
CourseList courseList[100]; // possibly with = {}
courseList[0].attr = whatever; // usage
besser verwenden als oben, aber ähnlich, ein std::array
von CourseList
s
std::array<CourseList, 100> courseList; // possibly with = {}
courseList[0].attr = whatever;
oder in der Nähe zu dem, was es scheint, Sie wollen, einen Zeiger auf einen std::array
von CourseList
s.Dies ist wahrscheinlich nicht die beste, aber dennoch, hier ist es:
std::array<CourseList, 100>* courseList = nullptr;
courseList = new std::array<CourseList, 100>{}; // prefer unique_ptr
courseList->at(0).attr = whatever;
Wenn Sie nicht wissen, die Größe bei der Kompilierung, oder um das Objekt zu übergeben wollen, ist Ihre beste Wette ist ein std::vector
verwenden
std::vector<CourseList> courseList(100);
courseList[0].attr = whatever;
Schließlich würde die weirdest Option sein, um tatsächlich einen Zeiger auf ein Feld zu definieren:
CourseList (*courseList)[100] = nullptr;
Adressierung der Update: Sie können wie so Standard initializers in Ihrer Klasse verwenden:
class ScmApp {
private:
CourseList* courseList[100] = {};
int noOfCourses = 0;
};
Aber es scheint, als ob Sie eine wachstumsfähige Behälter verwenden sollten, std::vector
und push_back
Aufruf Kurse immer wieder hinzufügen. Was ich sehe, ist ein sehr schwer zu pflegender Überblick darüber, wer in welcher Klasse ist.
Wenn es unbedingt notwendig ist, dass Sie ein vorhandenes Array nehmen und setzen alles auf nullptr
dann können Sie std::fill
std::fill(std::begin(courseList), std::end(courseList), nullptr);
Nein, Sie müssen verwenden Sie den gesamten Container-Schleife und jedes Element zuordnen Null-Zeiger zu sein. Wenn diese 'Course * courseList (100, null); 'das gleiche tut. –
"Wenn ich CourseList auf einen Nullzeiger setzen möchte" 'CourseList' ist kein Zeiger, es ist ein Array von Zeigern. Möchten Sie * jedes Element * auf 'nullptr' setzen? –
'Kursliste' ist ein Array. Sie können Arrays nicht auf null setzen, so wie Sie Katzen oder Geschirrspülmaschinen nicht auf null setzen können. Nur * Zeiger * können null sein. –