为什么到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.
[解决办法]
呵呵,栈溢出了!