C++ c+中的分段错误+;代码找不到原因

C++ c+中的分段错误+;代码找不到原因,c++,segmentation-fault,C++,Segmentation Fault,在解决问题时,我正在对最后一个测试用例进行分段(不知道是什么)。 问题的概念是基本的bfs。给定一个无向图| V | n>>m; INTU,v; 对于(inti=1;i>h>>V; 距离[h]=0; //你有这个吗 cin >>n>>m; ... int dist[n+1]; 因此,阵列dist的大小可能小于3500。但是: for (int i = 1 ;i <= 3500;i++) ... dist[

在解决问题时,我正在对最后一个测试用例进行分段(不知道是什么)。 问题的概念是基本的bfs。给定一个无向图| V | n>>m; INTU,v; 对于(inti=1;i>h>>V; 距离[h]=0; //你有这个吗

cin >>n>>m;
...
int dist[n+1];
因此,阵列
dist
的大小可能小于3500。但是:

        for (int i = 1 ;i <= 3500;i++)
           ...
           dist[i] = dist[top] +1;

您对索引0有什么看法?:)向代码中添加更多日志,这样您就可以了解分段错误是从何处产生的。在调试器中运行时,分段错误将在崩溃处停止。然后你可以检查函数调用堆栈,如果需要的话,转到你的代码,在那里检查变量的值。index大于0@MartinJames,所以这不是原因,实际上错误不在这一点上。我试着改变它,但在第10个测试用例中,我得到了分段错误
        for (int i = 1 ;i <= 3500;i++)
           ...
           dist[i] = dist[top] +1;
#include <assert.h>
...
        for (int i = 1 ;i <= 3500;i++)
           ...
           assert(i >= 0 && i <= n && top >= 0 && top <= n);
           dist[i] = dist[top] +1;