Подтвердить что ты не робот

Как создать массив указателей?

Я пытаюсь создать массив указателей. Эти указатели указывают на объект Student, который я создал. Как мне это сделать? Теперь у меня есть:

Student * db = new Student[5];

Но каждый элемент в этом массиве является объектом-учеником, а не указателем на объект-ученик. Спасибо.

4b9b3361

Ответ 1

Student** db = new Student*[5];
// To allocate it statically:
Student* db[5];

Ответ 2

#include <vector>
std::vector <Student *> db(5);
// in use
db[2] = & someStudent;

Преимущество этого в том, что вам не нужно беспокоиться об удалении выделенного хранилища - вектор делает это за вас.

Ответ 3

Массив указателей записывается как указатель указателей:

Student **db = new Student*[5];

Теперь проблема заключается в том, что у вас есть только зарезервированная память для пяти указателей. Таким образом, вы должны проходить через них, чтобы сами создавать объекты Student.

В С++ для большинства случаев жизнь проще с std::vector.

std::vector<Student*> db;

Теперь вы можете использовать push_back() для добавления к нему новых указателей и [] для его индексации. Это чище использовать, чем вещь **.