web-dev-qa-db-ja.com

ポインターの配列を作成するにはどうすればよいですか?

ポインターの配列を作成しようとしています。これらのポインターは、作成したStudentオブジェクトを指します。どうすればいいのですか?私が今持っているものは:

Student * db = new Student[5];

ただし、その配列の各要素は学生オブジェクトであり、学生オブジェクトへのポインタではありません。ありがとう。

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

これの利点は、割り当てられたストレージを削除することを心配する必要がないことです-ベクトルがあなたのためにそれをします。

17
anon

ポインターの配列は、ポインターのポインターとして書き込まれます。

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

問題は、5つのポインター用にメモリを予約しているだけだということです。したがって、それらを反復処理して、Studentオブジェクト自体を作成する必要があります。

C++では、ほとんどのユースケースで、std :: vectorを使用する方が簡単です。

std::vector<Student*> db;

これで、Push_back()を使用して新しいポインターを追加し、[]でインデックスを作成できます。 **ものよりも使用するほうがきれいです。

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