首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么到1000000就不行?该怎么处理

2012-03-11 
为什么到1000000就不行??用插入排序法写了个程序,源码如下:#include iostream.h#include fstream.h#de

为什么到1000000就不行??
用插入排序法写了个程序,源码如下:
        #include <iostream.h>
#include <fstream.h>

#define   MAX   100000

void   main()
{
ofstream   out( "result.txt ");
        int   array[MAX];
        int   temp,i,j;
for(i=0;i <MAX;i++)
{
array[i]   =   i;
}
for(i=0;i <MAX;i++)
{
out < <array[i] < < "   ";
}
out < <endl;
out < <endl;
        for(i=1;i <MAX;i++)
{
for(j=0;j <i;j++)
{
if(array[i]   >   array[j])
{
temp   =   array[i];
array[i]   =   array[j];
array[j]   =   temp;
}
}
}
for(i=0;i <MAX;i++)
{
out < <array[i] < < "   ";
}
out < <endl;
cin.get();
}                                                                                                                                                  
                                                                                                                                                    先创造一组整型数组,并赋值,由小到大,从0-999999。再从大到小排序并输出,但是为什么当数组元素到达1000000是就不行??编译能够通过,但是在输出是会报错,望指点,谢谢!:)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    




[解决办法]
系统默认的栈大小只有1M,超过了就stack overflow了,
你可以在工程属性--〉连接--〉系统--〉栈保留尺寸,。。改到你想要的栈size.
[解决办法]
呵呵,栈溢出了!

热点排行