我有一个严重的问题,在任何地方都找不到答案。我希望有人能在这里帮助我。
首先,我尝试创建一个数组树,其中的信息存储在
Node.h文件
class Node {
public:
Node();
void setPerson(Person* _p) {
this->person = _p;
}
Node* getNode(int i) { return nodes[i];}
void insert(Person* _p, Tele* _tele, int i);
private:
Node *nodes[10];
Person* person;
};Node.cpp
Node::Node() {
for(int i=0;i<10;i++) { nodes[i] = new Node(); }
person = new Person();
}
void Node::insert(Person* _p, Tele _tele, int i) {
std::string t=tele.getString();
if(t.size()==i) {
this->person = _p; // here comes the segmentation fault
} else {
char charNode t.at(i);
int nextNode = charNode - '0';
nodes[nextNode]->insert(_p,_tele,++i);
}
}发布于 2014-01-22 00:10:00
在您尝试insert之前,构造函数在堆上构造了10个节点...每一个节点都会构造10个以上的节点...每一个节点都会构造10个以上的节点...
我认为问题在于你的电脑没有足够的内存。相反,请尝试构建有限树。
https://stackoverflow.com/questions/21262622
复制相似问题