Хранить объект в дереве дает ошибку сегментации (c ++)

У меня серьезная проблема, и я нигде не мог найти ответ. Я надеюсь, что кто-то может помочь мне здесь.

Прежде всего я пытаюсь создать массив дерева с информацией, хранящейся в

Файл 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);
}
}

0

Решение

Прежде чем вы даже попытаетесь insert, конструктор создает 10 узлов в куче … каждый из которых создает еще 10 узлов … каждый из которых создает еще 10 узлов …

Я думаю, проблема в том, что на вашем компьютере недостаточно памяти. Попробуйте построить конечный дерево вместо

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]