심각한 문제가있어 어디서나 답변을 찾을 수 없습니다. 나는 누군가가 나를 도울 수 있기를 바랍니다.트리의 저장소 객체가 세그먼트 화 오류를 발생시킵니다. (C++)
내가 에 저장된 정보와 배열 트리를 만들려고 모든먼저 당신도 insert
을 시도하기 전에
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);
}
}
'Node()'의 생성자는 무엇을합니까? 특히, 어떻게'Node * nodes [10]'멤버를 밟을 수 있습니까? – Nim
생성자가 새 노드와 새 person 객체를 시작합니다. – user3219523
내 수정 구슬은 아직 배열에있는 모든 노드를 할당하지 않았다고 생각합니다. – molbdnilo