Массив указателей записывается как указатель указателей:
Student **db = new Student*[5];
Теперь проблема в том, что вы зарезервировали память только для пяти указателей. Таким образом, вы должны перебирать их, чтобы сами создавать объекты Student.
В C ++ для большинства случаев использования жизнь проще с помощью std :: vector.
std::vector<Student*> db;
Теперь вы можете использовать push_back () для добавления новых указателей на него и [] для его индексации. Чище использовать, чем ** вещь.