我尝试过两种不同的东西,但我并不完全确定发生了什么。寻找有关如何以最佳方式执行此操作的解释和输入,谢谢!我不想使用矢量。
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.
}
答案 0 :(得分:0)
如果你想要你的数组位于堆上(“永久”存储,并在方法返回后删除),那么你应该使用
*nodeList = new Node[num];
请注意通过delete[] nodeList
删除已分配的内存,而不是delete nodeList
(不使用[]
)。这个stackoverflow answer解释了原因。
正如@StoryTeller建议我也会检查代表动态集合的STL std::vector
。