在 Windows 上但不是 Linux 上的 Segfault (包括 GDB 信息) - C.



我在Windows中遇到段错误,但在Linux(同一程序)中没有。使用GDB(minGW),我得到以下信息:

程序接收信号SIGSEGV,分段错误。 21 0x7c8024f0 英寸ReleaseMutex () from C:\WINDOWS\system32\kernel32.dll

该程序在 Linux 系统上运行直至完成。崩溃发生在此函数中的递归调用期间:

    void recursive_paint_char(int x,int y,int **inimage,int new_color,int fore_color)
{
/* 
   This routine paints the connected object around the pixel x,y in image inimage
   to the color new_color. The foreground color is assumed to be fore_color.
*/
 int        i;
 int        xt,yt;
 inimage[x][y]=new_color;
 for (i=0;i<8;i++)
 {
  xt=x+xc[i];
  yt=y+yc[i];
  if (inimage[xt][yt]==fore_color) 
  {
    printf("this statement printsn"); 
   recursive_paint_char(xt,yt,inimage,new_color,fore_color);
   printf("this statement never printsn"); 
  }
 }
}

递归在段错误之前转到大约 171,000 个调用

user3386109 回答了问题 - 问题似乎是堆栈大小。

相关内容

  • 没有找到相关文章

最新更新