方法无法初始化值c ++

时间:2015-04-30 11:13:45

标签: c++ reference bellman-ford

首先,我在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) 你能告诉我我做错了什么吗?

repo https://github.com/likoms/Graph/

1 个答案:

答案 0 :(得分:1)

当我试图从github存储库运行代码时,我很难过分段错误。原因是在文件FordBellman.cpp第42行。你没有分配数组,但你使用它。

您没有看到任何内容的原因在于您的程序在打印之前已被终止。准确地说,它发生在am.createFromFile("matrix.txt");

尝试为predecessor编写内存分配,我认为您的代码将开始工作。

我有点困惑,你没有收到有关分段错误的消息。你使用什么开发环境?