试图打印变量。程序崩溃

时间:2014-10-30 13:18:02

标签: c++ crash cout

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    int64_t sum=0, c=-1, li[1000000];
    bool flag = 1;
    for(int i=2; i<=2000000; i++)
    {
        flag = 1;
        for(int j = 0; j<c; j++)
        {
            if (i%li[j]==0)
            {
                flag = 0;
                break;
            }
        }
        if(flag)
        {
            sum += i;
            li[++c] = i;
        }
    }
    cout<<"done"<<endl;
    cout<<sum;             // This line causes the program to crash.
    return 0;

}

查看上面的代码。 &#34; cout&lt;

使用Code :: Blocks v13.12,GNU GCC编译器,默认设置。 另外,我是新手,编码和StackOverflow:)

1 个答案:

答案 0 :(得分:2)

巨大的数组可能对于堆栈而言太大 - 通常,堆栈限制为少量兆字节,有时在资源有限的平台上更少。

改为使用动态数组:

std::vector<int64_t> li(1000000);