如何在C++中动态分配指针数组?

10

我有以下的类

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;
}

请告诉我如何在构造函数中动态分配一个指针数组 -- 这个数组的大小为maxsize。

3个回答

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

但通常情况下,您最好使用指针的std::vector。


6
假设您想创建一个3行4列的矩阵,则可以这样做:
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
}

为什么在第一行中 * 是添加在 int 后面而不是前面的? - Franklin V

2
那将是 Nptr = new Node*[maxsize]; 此外,记得在析构函数中使用 delete[]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接