关于堆栈的一些认识:
程序中变量的定义不是分配在堆上,就是在栈上。今天看了几篇讨论堆和栈的文章,里面讲到栈的默认大小可能是1m,也可能是2m,好奇之下试试。
int main (int argc, char *argv[])
{
int tmp[600000] = {0}; tmp[1000]=100; printf("%d",tmp[1000]);
}
大概就是2.1MB吧,出现了 [main] Test 3204 handle_exceptions: Exception: STATUS_STACK_OVERFLOW 28408 [main] Test 3204 open_stackdumpfile: Dumping stack trace to Test.exe.stackdump
代码1
#include <iostream>
#include <stdlib.h>
using namespace std;
#define MinSize 1978*1024*1024/1000
#define MaxSize 1979*1024*1024/1000
#define StackSize MinSize
int main(int argc, char *ar