Hoe dynamisch een array van pointers toewijzen in C++?

Ik heb de volgende klas

class Node
{
    int key;
    Node**Nptr;
public:
    Node(int maxsize,int k);
};
Node::Node(int maxsize,int k)
{
   //here i want to dynamically allocate the array of pointers of maxsize
   key=k;
}

Vertel me alsjeblieft hoe ik dynamisch een array van pointers in de constructor kan toewijzen — de grootte van deze array zou maxsize zijn.


Antwoord 1, autoriteit 100%

Node::Node(int maxsize,int k)
{
   NPtr = new Node*[maxsize];
}

Maar zoals gewoonlijk ben je waarschijnlijk beter af met een std::vector van pointers.


Antwoord 2, autoriteit 50%

Stel dat je een matrix van 3 rijen en 4 kolommen wilt maken,

int **arr = new int * [3];  //first allocate array of row pointers
for(int i=0 ; i<rows ; ++i)
{
   arr[i] = new int[4]; // allocate memory for columns in each row
}

Antwoord 3, autoriteit 17%

Dat wordt Nptr = new Node*[maxsize];Vergeet ook niet om delete[]in destructor te gebruiken.

Other episodes