在ubuntu下执行C代码时出现分段错误

当我编译c文件时,gcc不返回任何错误,但在运行时发生分段错误。 debugging器显示这部分代码发生故障:

int q=size[current]; int *temp; temp = malloc ( sizeof(int)*q); for(i=0;i<size[current];i++) temp[i]=arr[current][i]; 

arr被定义为:

  int arr[20][200]; 

当前默认为0。

我正在尝试复制2d数组(ARR)内的数组的内容到一个临时数组,我试过不使用malloc,但仍然是同样的问题。

ps:程序在Windows上运行良好。

你所显示的代码没有问题(我可以看到)。

您应该采取的第一步是在Valgrind下运行您的程序,并修复它报告的任何错误。

如果Valgrind报告您不明白的错误,请使用Valgrind输出更新您的问题。

如果Valgrind没有报告任何内容,请在GDB下运行你的程序,打印icurrentsize[current]等值,然后用你的GDB会话更新你的问题。

我怀疑目前的size[current]大于200