0

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

回购https://github.com/likoms/Graph/

4

1 回答 1

1

当我试图从 github 存储库中运行关于你的代码时,我遇到了分段错误。原因在于文件 FordBellman.cpp 第 42 行。在那里您没有分配数组,但您使用了它。

你没有看到任何东西的原因是你的程序在打印之前就被终止了。准确地说,它发生在am.createFromFile("matrix.txt");

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

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

于 2015-04-30T14:53:42.030 回答