C/C++ stack overflow 怎样设置stack大小?

C/C++ stack overflow 怎样设置stack大小? 举一个简单的例子,用的Visual Studio 2005 C++ /*文件1.c*/ #include <stdio.h> #define M 900 #define N 900 int main( void ) { int a1[M][N]; int i,j; for(i=0;i<M;i++) for(j=0;j<N;j++) { a1[i][j]=N*i+j+1; printf("%d ",a1[i][j]); if(j==N-1) printf("\n"); } return 0; } 调试过程中出现 1.exe 中的 0x004012d7 处未处理的异常: 0xC00000FD: Stack overflow
经调试,(对于我的系统而言)若N不变,M>286就会出现相同的错误,而M<=286时则正常通过。 此外,我试图对两个200x900数组付值时还是出现相同的错误,显然当M>=143时是一样的。
请问各位大侠,怎样调整stack的大小,或怎样才能将900x900的数组输入到内存?

 

        

            3条回答        
 
这是vc6.0的 project->setting->link->project options->Output->Reserve 你的2005自己找吧 应该差不多
 
gogaga     2014-07-02 16:13:10         
评价(0)(0)(0)引用
 
你把数组弄成全局变量或者malloc出来就行
#include   <stdio.h>  #define   M   900  #define   N   900 
int   a1[M][N]; 
int   main(   void   )  { 
int   i,j;  for(i=0;i <M;i++)  for(j=0;j <N;j++)  {  a1[i][j]=N*i+j+1;  printf("%d   ",a1[i][j]);  if(j==N-1)  printf("\n");  }  return   0;  } 
 
gogb2312     2014-07-02 16:13:10         
评价(0)(0)(0)引用
 
实在要要从栈上想办法就 #pragma   comment(linker,stack:10000000,10000000),偶不赞成随便动
 
wjhelr     2014-07-02 16:13:10         
评价(0)(0)(0)引用
 
 
posted @ 2017-03-27 17:46  sky20080101  阅读(656)  评论(0)    收藏  举报