web-dev-qa-db-fra.com

Comment créer un tableau de pointeurs?

J'essaie de créer un tableau de pointeurs. Ces pointeurs pointeront sur un objet Student que j'ai créé. Comment puis-je le faire? Ce que j'ai maintenant, c'est: 

Student * db = new Student[5];

Mais chaque élément de ce tableau est l’objet étudiant, et non un pointeur sur l’objet étudiant.

35
chustar
Student** db = new Student*[5];
// To allocate it statically:
Student* db[5];
74
Mehrdad Afshari
#include <vector>
std::vector <Student *> db(5);
// in use
db[2] = & someStudent;

L'avantage de ceci est que vous n'avez pas à vous soucier de la suppression du stockage alloué - le vecteur le fait pour vous. 

17
anon

Un tableau de pointeurs est écrit comme un pointeur de pointeurs:

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

Le problème est que vous n’avez réservé que de la mémoire pour les cinq pointeurs. Vous devez donc les parcourir pour créer les objets Student eux-mêmes.

En C++, dans la plupart des cas d'utilisation, la vie est plus facile avec un std :: vector.

std::vector<Student*> db;

Vous pouvez maintenant utiliser Push_back () pour y ajouter de nouveaux pointeurs et [] pour l’indexer. C'est plus propre à utiliser que le ** chose.

11
ypnos
    void main()
    {
    int *arr;
    int size;
    cout<<"Enter the size of the integer array:";
    cin>>size;
    cout<<"Creating an array of size<<size<<"\n";
        arr=new int[size];
    cout<<"Dynamic allocation of memory for memory for array arr is successful";
    delete arr;
    getch();enter code here
}
0
user9546648