【发布时间】:2011-12-30 15:04:49
【问题描述】:
当我编译 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];
arr 已定义:
int arr[20][200];
当前默认为 0。
我正在尝试将二维数组 (arr) 中的数组内容复制到临时数组中, 我试过不使用 malloc 但仍然是同样的问题。
ps:程序在windows上运行良好。
【问题讨论】:
-
你能展示一下你是如何初始化
arr的吗? -
arr是什么?你能给我们一些编译和展示问题的东西吗? -
能否添加 current 和 arr 的定义?另外,我建议你编译时启用所有警告,如果你还没有,因为它可能会给你一个提示。
-
如何在循环中填充
size[current]女巫是i的上限? -
学习使用
gcc -g -Wall编译和使用gdb调试器。
标签: c linux segmentation-fault runtime-error