ссылка — метод не может инициализировать значение переполнения стека

Сначала я инициализирую значение в конструкторе в 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/

0

Решение

Когда я попытался запустить код из репозитория GitHub о вас, печально, я получил ошибку сегментации. Причина была в строке 42 файла FordBellman.cpp. Там вы не выделяли массив, а использовали его.

Причина, по которой вы ничего не видели, заключается в том, что ваша программа завершает работу, прежде чем что-то печатает. Чтобы быть точным, это происходит внутри am.createFromFile("matrix.txt");

Попробуйте написать распределение памяти для predecessor и я думаю, что ваш код начнет работать.

Я немного сбит с толку, что вы не получите сообщение о сбое сегментации. Какую среду разработки вы используете?

1

Другие решения


По вопросам рекламы [email protected]