c - 该 C 程序停止工作的原因

标签 c

我想知道为什么当我增加数组 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/

相关文章:

c - C 编程简介 - [期末考试示例] 回文函数

计算大数的生日概率

c++ - 缺少 'printout' CLIPS 的函数声明

python - 在 Numpy 数组上调用 PyArg_ParseTuple 时崩溃

c - Fopen 返回 null 除非在那里进行探索?

c++ - 数组如何在 C/C++ 中内部工作

c - 从任何角度来看,++i 和 i+=1 之间有什么区别

c - 为什么我的 while() 语句陷入无限循环?

c - 对二进制文件进行排序

c - 是否可以完全用 C 编写操作系统?