这个C程序停止工作的原因

时间:2016-02-26 06:12:59

标签: c

我想知道为什么当我增加数组a []的值时这个程序停止工作 如果有,plaese告诉我如何在不崩溃的情况下增加这个值 感谢

#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;
}

1 个答案:

答案 0 :(得分:-2)

基本有符号整数类型。能够至少包含[-32767,+ 32767]范围;因此,它的大小至少为16位,

使j超出范围。