我想知道堆栈大小是否能像堆一样在运行时增长?
当你在分配本地变量和调用函数时,堆栈使用量肯定会增加。虽然堆栈的最大大小在技术上是未定义的,但在实践中通常是恒定的。您可以通过向操作系统添加标志来使这个常量更大,但通常每个线程都会获得一定大小的堆栈。当您使用太多的时候,就会发生堆栈溢出。
getrlimit()
查询进程的最大堆栈大小。我认为可执行堆栈大小是由编译器/链接器定义的..所以你可以改变它,但不能在运行时改变。 你可以改变线程的堆栈大小。 + 一切都取决于编译器和操作系统,所以这里没有一个单一的答案。
线程的堆栈空间由编译器设置。我的编译器将保留2Mb的空间,并将提交1Mb。
当然,您可以更改编译器的默认堆栈大小,或者通过调用CreateThread启动一个具有较大堆栈大小的新线程。 http://msdn.microsoft.com/en-us/library/ms682453%28VS.85%29.aspx
是的,我认为答案是正确的。