关于栈溢出的想法


前几天看到一个帖子,使用递归的时候,由于递归太深,导致栈溢出。我想问,这个栈可以指定空间么?我们在编译的时候,可以指定自己的段(虽然和指定栈没什么关系),那我们在运行的时候,可以去判断一下,如果栈空间不够了,就把栈内容备份到硬盘,然后再继续调用。 这个想法看起来好像比较不可行(因为我自己也不知道怎么做)。但是有可能性么?或者使用一个方法去模拟实现这种想法。

c 操作系统 C++

熊貓要打飛機 11 years, 11 months ago

《Windows核心编程(第五版)》中提到:windows中默认的线程栈大小是1MB。要想改变该默认值可以用2种方法:
(1)Microsoft C++编译器的/F选项
/Freserve
(2)Microsoft C++链接器的/STACK选项
/STACK:reserve[,commit]

至于你所说的对栈中的内容进行处理,这个不知道操作系统有没有提供这个权限~

cvp110 answered 11 years, 11 months ago

Your Answer