有以下程序:
编译后,没有错误,运行发现错误。原因是在栈上分配的空间大小超出了VC规定的栈大小的默认值。
VC默认栈大小是1M。
另有以下程序:
编译运行没有错误,因为分配的空间实在静态存储区,而不是在栈上分配的。
还有下面程序,也不会出错。
因为空间的分配也在静态存储区。
另外,在程序中动态分配的空间一般也比在栈上可分配的空间大很多。所以一般情况下都不会导致超出默认情况下空间大小的情况。
为了使在栈上分配的空间大小能符合实际的要求,我们可以调整VC的默认栈的空间大小。
方法:
依次打开:project->Setting->Link,在Category中选中Output,然后再Reserve中设定堆栈的最大值和commit就可以了。