【发布时间】:2017-02-27 02:46:52
【问题描述】:
此代码给出分段错误。在 GDB 调试时出现此错误:
"程序收到信号SIGSEGV,分段错误。 _IO_vfscanf_internal 中的 0x00007ffff7a6dde5 (s=, 格式=,argptr=argptr@entry=0x7fffffffdba8, errp=errp@entry=0x0) at vfscanf.c:1902 1902 vfscanf.c: 没有这样的文件或目录。 "
void readData()
{
int **arr,m;
scanf("%d",&m);
arr = (int **)malloc(sizeof(int)*m);
for(int i=0;i<m;i++)
{
arr[i] = (int *)malloc(sizeof(int) * 2);
}
for(int i=0;i<m;i++)
{
printf("..%d ..\n",i); // if m = 20 then running only 12 times
scanf("%d %d",&arr[i][0],&arr[i][1]);
}
}
int main()
{
readData();
}
如果 m=20 那么,第二个循环只运行了 12 次,然后给出分段错误。虽然第一个循环运行了 20 次。 请帮帮我。
【问题讨论】:
标签: c data-structures segmentation-fault malloc dynamic-arrays