一.栈的简介栈空间在进程中主要用来存放局部变量的值,在windows下使用visual studio作为编译器,默认的栈空间大小为1M。二.示例代码#include <iostream>void teststacksize2(){ char szArray[600000] = {0};//600,000byte std::cout<<“teststacksize2”<<std::endl;}void teststacksize1(){ char szArray[600000] = {0};//600,000byte std::cout<<“teststacksize1”<<std::endl; teststacksize2();}int main(int argc, char* argv[]){ teststacksize1(); return 0;}三.程序运行效果如图四.解决此问题的方法1.修改工程中stack reserve size的大小,工程右键Properties->Linker->System->Stack Reserve Size中进行修改,改为10M或者更大。此示例程序中teststacksize1和teststacksize2方法中一共申请了1,200,000个字节。此方法不推荐,因为可能会有更大字节的局部变量。2.将char szArray[]改为stack,亦可避免崩溃,因为静态的局部变量类似于全局变量,在全局区。3.将szArray new出来存在在堆上,推荐此种方法。