标签:
今天终于知晓了为什么在main函数外定义大数组了:
数组定义在函数中时,占用的内存来自栈空间,栈空间是在进程创建时初始化的,有固定的大小,一般为几十KB,所以太大的数组会耗光栈空间。
而全局变量是存储在数据段中的,按需分配,自由增长,可以很大。
#include<iostream> #include<iomanip> #include<algorithm> #include<cstring> using namespace std; int main() { int table[500001]={0}; table[1]=0; for( int i=1; i<=250000; i++ )//筛法 for( int j=i<<1; j<=500000; j+=i ) table[j]+=i; int T; int n; cin>>T; while( T-- ) { cin>>n; cout<<table[n]<<endl; } return 0; }
标签:
原文地址:http://www.cnblogs.com/FightForCMU/p/4449122.html