关于OJ中的Segmentation Fault

时间:2022-04-30 08:53:10
这段代码用VS2013编译运行都是正确的,提交出现Segmentation Fault 错误,

Segmentation Fault : The possible cases of your encountering this error are:

•1.buffer overflow --- usually caused by a pointer reference out of range.

•2.stack overflow --- please keep in mind that the default stack size is 8192K.

到底是哪个地方出错了?求教了
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>

int
main()
{
int n, m, count[10], *buf;
int i, k;
scanf("%d", &n);
memset(count, 0, n*sizeof(int));
for (i = 0; i < n; i++)
{
scanf("%d", &m);
buf = (int *)malloc(m*sizeof(int));
if (buf == NULL)
{
printf("space error\n");
return 0;
}
int j = 0;
while ( m != 0)
{
scanf("%d", &buf[j]);
if (buf[j] < 0 || buf[j] > 9999)
{
printf("error");
return 0;
}
if (buf[j] > 6000 && buf[j] <= 9999)
count[i]++;
j++;
m--;
}
}
for (k = 0; k < n; k++)
printf("%d\n", count[k]);
return 0;
}

2 个解决方案

#1


不知道你n的取值范围是多少

#2


int count[1000000];这个作全局试试

#1


不知道你n的取值范围是多少

#2


int count[1000000];这个作全局试试

相关文章