我希望能够在Node的构造函数中创建Node数组。但是我遇到了某种堆错误。
我用构造函数编写了一个Node类,试图用new实例化Node数组。
myTextBox.Text = myTextBox.Text & ControlChars.CrLf & newText
我希望创建一个在构造函数中创建该对象的10个实例的对象。当我写这篇文章时,我意识到这将创建一个无限循环。那10个将分别创建10个,依此类推。我应该如何解决这个问题?我应该做一个双指针吗?
答案 0 :(得分:0)
如果尝试在Node构造函数中实例化新的Node对象,则将继续对构造函数进行递归调用,并耗尽内存。您正在尝试创建一个节点,该节点创建10个节点,每个节点都创建10个节点,依此类推。
如果您只想为max_size
个节点分配空间,那么如果不想使用std::vector
,则需要使用双指针。
class Node {
private:
Node** nodes;
...
public:
// Constructor
Node() {
...
nodes = new Node*[max_size];
}
};
在构造函数之外,您可以通过单独的函数用新的Node对象填充该数组。