首先,我在Ford Bellman claas的构造函数中初始化值
FordBellman::FordBellman() {
this->vertexCount=0;
this->vertexFirst=0;
this->edgeCount=0;
this->wage=0;
this->matrix=0;
this->distance=0;
this->predecessor=0;
}
接下来我在FordBellman的初始化方法的参数中引用了
void FordBellman::initialize(const AdjacencyMatrix &am)
{
this->vertexCount=am.getVertexCount();
this->vertexFirst=am.getVertexFirst();
this->edgeCount=am.getEdgeCount();
this->wage=am.getWage();
this->matrix=am.getMatrix();
cout << vertexCount;
cout << vertexFirst;
.....
}
在主要班级我这样做
int main() {
AdjacencyMatrix am;
FordBellman fb;
am.createFromFile("matrix.txt");
fb.initialize(am);
}
如果我打电话给fb.initialize(am)控制台什么都不显示(应该显示cout) 你能告诉我我做错了什么吗?
答案 0 :(得分:1)
当我试图从github存储库运行代码时,我很难过分段错误。原因是在文件FordBellman.cpp第42行。你没有分配数组,但你使用它。
您没有看到任何内容的原因在于您的程序在打印之前已被终止。准确地说,它发生在am.createFromFile("matrix.txt");
尝试为predecessor
编写内存分配,我认为您的代码将开始工作。
我有点困惑,你没有收到有关分段错误的消息。你使用什么开发环境?