C++数组声明问题

use*_*034 2 c++ arrays

这段代码给了我段错误:

#include <stdio.h>  

int main(int argc,char** argv[]){  

int ar[20000000];  

return 0;  

}  
Run Code Online (Sandbox Code Playgroud)

但是,如果我将数组的大小减少0 - 那就好了.我超过了最大尺寸吗?如果我想存储那么多的整数怎么办?谢谢.

Set*_*gie 6

这可能与您尝试在堆栈上分配超过70兆字节的数据有关.Windows的每个线程IIRC的默认堆栈大小为1兆字节.尝试在免费商店中分配它new,如下所示:

int* ar = new int[20000000];
Run Code Online (Sandbox Code Playgroud)

当你使用它时,delete[]它:

delete[] ar;
Run Code Online (Sandbox Code Playgroud)