出于某种原因,我得到一个分段错误; 我使用的指针,它指向一个类的对象的向量。 基本上我需要具有指向其他节点的向量,在其他作多重图的节点。 这里是我的代码的相关部分:
node.h:
#ifndef NODE_H
#define NODE_H
class node
{
public:
string content()
vector<node*> next; //causing the error
void add_arc(node a);
string rna_frag;
#endif
node.cpp:
void node::add_arc(node a)
{
node *b = &a; //b->content() works fine here
next.push_back(b);
}
string node::content()
{
return rna_frag;
}
main.cpp中:
int main()
{
vector<node> nodes;
node a;
node b;
node c;
a.add_arc(b);
a.add_arc(c);
a.rna_string = "G";
nodes.push_back(a);
nodes.push_back(b);
nodes.push_back(c);
cout << nodes[0].content() << endl; //prints "G", works fine
cout << nodes[0].next.size() << endl; // prints "2", works fine
cout << nodes[0].next[0]->content() << endl; //segmentation fault
//cout << nodes[0].next->content() << endl; //also segmentation fault
//cout << nodes[0].next[0]->rna_frag << endl; //also segmentation fault
}
在这种情况下,节点[0]的字符串为‘G’和指向其它2个节点,所以第2个COUTS完美工作。 但是,当我访问向量的内容,它只是崩溃,并给出一个分段错误。 任何人都知道为什么吗?