C ++ - 在运行时扩展堆栈

时间:2012-08-14 22:11:05

标签: c++ memory stack-overflow

如何在需要时自动扩展堆栈? (直到最大限度我决定)

我正在尝试创建一些获取函数指针的东西(随机一个,我不知道函数真正需要什么)并用它创建光纤。 但是我需要创建很多光纤,但是当它们需要更多光纤时,我希望它能够自动扩展,直到我最终确定。

原因:我需要创建大量光纤,如果我用它们创建大堆栈,那么它在RAM中也需要很多内存。但是,如果我创建小堆栈,它将抛出异常。 (堆栈溢出)

但是应该有大堆栈和小堆栈,然后我需要在运行时自动扩展它。

1 个答案:

答案 0 :(得分:1)

如果使用CreateFiberEx创建光纤,则可以使用较小的提交堆栈大小和较大的保留堆栈大小。但请注意,从系统可用的总内存中删除了为保留指定的任何内容。但是,除非您需要RAM,否则它不会提交给RAM。细节描述为here