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

Clion error while running c++ project

本文关键字:Clion 错误 c++ 项目 运行      更新时间:2023-10-16

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

进程已完成,退出代码为 -1073741819 (0xC0000005)

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

图形最多可以有 9 个顶点:

Graph *G = new Graph(9);

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

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

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% 的时间内崩溃,为什么您在调试器中无法捕获它。