Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ubuntu中执行C代码时出现分段错误_C_Linux_Segmentation Fault_Runtime Error - Fatal编程技术网

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

在ubuntu中执行C代码时出现分段错误,c,linux,segmentation-fault,runtime-error,C,Linux,Segmentation Fault,Runtime Error,编译c文件时,gcc不会返回任何错误,但在运行时会出现分段错误。调试器显示错误发生在这部分代码中: int q=size[current]; int *temp; temp = malloc ( sizeof(int)*q); for(i=0;i<size[current];i++) temp[i]=arr[current][i]; 当前默认值为0 我试图将2d数组(arr)中的数组内容复制到临时数组中, 我尝试过不使用ma

编译c文件时,gcc不会返回任何错误,但在运行时会出现分段错误。调试器显示错误发生在这部分代码中:

      int q=size[current];
      int *temp;
      temp = malloc ( sizeof(int)*q);
      for(i=0;i<size[current];i++)
        temp[i]=arr[current][i];
当前默认值为0

我试图将2d数组(arr)中的数组内容复制到临时数组中, 我尝试过不使用malloc,但仍然存在相同的问题


ps:该程序在windows上运行良好。

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

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

如果Valgrind报告了您不理解的错误,请使用Valgrind输出更新您的问题


如果Valgrind没有报告任何内容,请在GDB下运行您的程序,打印
i
current
size[current]
,等等的值,并在GDB会话中更新您的问题。

我怀疑
size[current]
大于
200

您可以演示如何初始化
arr
?什么是
arr
?你能给我们一些汇编和展示问题的东西吗?你能添加当前和arr的定义吗?此外,我建议您在编译时启用所有警告,如果您尚未启用,因为这可能会给您一个提示。如何填充
size[current]
在循环中
I
的上限?学习使用
gcc-g-Wall
编译并使用
gdb
调试器。
      int arr[20][200];