如何初始化函数中指针数组的大小?

时间:2017-11-20 06:16:20

标签: c++ arrays pointers nodes

我尝试过两种不同的东西,但我并不完全确定发生了什么。寻找有关如何以最佳方式执行此操作的解释和输入,谢谢!我不想使用矢量。

Graph.h

public:
   void setNodeList(int num);
private:
   Node *nodeList[];

Graph.cpp

void Graph::setNodeList(int num)
{
   nodeList[num]; // Would this work?
   *nodeList = new Node[num]; // Or this? Not really sure.
}

1 个答案:

答案 0 :(得分:0)

如果你想要你的数组位于堆上(“永久”存储,并在方法返回后删除),那么你应该使用

*nodeList = new Node[num];

请注意通过delete[] nodeList删除已分配的内存,而不是delete nodeList(不使用[])。这个stackoverflow answer解释了原因。

正如@StoryTeller建议我也会检查代表动态集合的STL std::vector