运行c ++项目时出现Clion错误

时间:2016-02-28 03:36:27

标签: c++ clion

我有一个C ++项目,我自己做了,我遇到了一个奇怪的错误。大约50%的时间我运行项目我收到错误

  

处理完成,退出代码为-1073741819(0xC0000005)

我不知道为什么会这样。我只是运行一个Dijkstra算法,我自己制作并在控制台上打印几行。数据永远不会改变,我只使用几个字节的内存。我不明白为什么项目有时会运行,有时会给我一个错误。

1 个答案:

答案 0 :(得分:1)

您的图表最多可包含9个顶点:

Graph *G = new Graph(9);

我认为这意味着任何特定的顶点都可以有一个0到8的值,因为代码似乎使用顶点作为各种向量的索引。

但是,当您在previousVertex中创建Dijkstra::Dijkstra(Graph *G, int s)向量时,由于某种原因,您给它的元素少于顶点数:

previousVertex = vector<int>(V - 1); // V is the number of vertices in G
                                     //   which is 9 in your example project
                                     //   so it will have 8 elements and
                                     //   can be indexed with 0-7

但是您可以在以后使用各种元素顶点值对其进行索引:

previousVertex[v] = u; // I believe that `v` can have the value 8 at times

我想你可能会超越previousVertex向量的末尾。我不知道为什么如果它在50%的时间内崩溃,你在调试器中捕获它时会遇到问题。