wake-up-neo.net

Wie erstelle ich ein Array von Zeigern?

Ich versuche, ein Array von Zeigern zu erstellen. Diese Zeiger zeigen auf ein von mir erstelltes Schülerobjekt. Wie mache ich das? Was ich jetzt habe, ist: 

Student * db = new Student[5];

Jedes Element in diesem Array ist jedoch das Schülerobjekt und kein Zeiger auf das Schülerobjekt .. _. Danke.

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;

Dies hat den Vorteil, dass Sie sich keine Sorgen darüber machen müssen, dass der zugewiesene Speicher gelöscht wird - der Vektor erledigt das für Sie. 

17
anon

Ein Array von Zeigern wird als Zeiger von Zeigern geschrieben:

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

Jetzt besteht das Problem, dass Sie nur Speicher für die fünf Zeiger reserviert haben. Sie müssen also durchlaufen, um die Schülerobjekte selbst zu erstellen.

In C++ ist das Leben mit einem std :: -Vektor für die meisten Anwendungsfälle einfacher.

std::vector<Student*> db;

Jetzt können Sie Push_back () verwenden, um neue Zeiger hinzuzufügen, und [], um es zu indizieren. Es ist sauberer als das ** Ding.

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