c - 我正在研究图的连通性。为什么我会遇到段错误 : 11?

标签 c undefined-behavior

     void checkconnections(int matrix[N][N], int connected[N], int j)
     {
     int i;


     for(i=0;i<N;i++)
     {
         if(matrix[i][j]>0)
         {
              connected[i]=1;
              j=i;
              checkconnections(matrix, connected, j);
         }
     }

}

我有一个连接矩阵,其中的值是随机生成的。如果它们已连接,则该值设置为 1,如果未连接,则该值设置为 0。N 在 header 中定义。

最佳答案

您会遇到段错误,因为将导致无限递归并且堆栈将溢出。

只要弄清楚如果 matrix[4][5]matrix[5][4] 都非零会发生什么。

关于c - 我正在研究图的连通性。为什么我会遇到段错误 : 11?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13661719/

相关文章:

c - Allegro5 makefile 错误

条件跳转或移动取决于未初始化的值 strcat

c - 为什么这些构造使用增量前和增量后未定义的行为?

c++ - 使用 std::vector,为什么 &vec[0] 是未定义的行为,但 vec.data() 是安全的?

c++ - 从对象到第一个成员的 reinterpret_cast

c++ - 来自 const_iterator 取消引用的赋值会导致未定义的行为吗?

c++ - 什么时候将 double 转换为整数是未定义的行为

c - C中如何确定空数组的值

c - 程序在调用回调函数时因段错误而崩溃

c - 用于 C 编译的特定 GCC 程序和库