我想知道为什么当我增加数组 a[] 的值时这个程序停止工作 如果有,请告诉我如何增加这个值而不崩溃 谢谢
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i, j, save;
char a[2082001];
memset(a,'1',2082000);
for (i=2;i<=2082000;i++)
{
if (a[i]=='1')
{
save=i;
for (j=i*2;j<=2082000;j+=i)
a[j]='0';
}
}
printf("save = %d",save);
return 0;
}
最佳答案
基本有符号整数类型。至少能够包含[−32767,+32767]范围;因此,它的大小至少为 16 位,
这使得 j 超出范围。
关于c - 该 C 程序停止工作的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35644778/