0

我知道 _alloca 的行为是在您离开函数时从堆栈中释放内存。有没有办法提前释放内存?

4

2 回答 2

2

没有。无论如何使用_alloca都没有意义——您可以编写一个高速池内存分配器,它可以更快地从堆中分配和解除分配,并且大小限制更少。

于 2012-09-26T10:39:59.320 回答
1

不,没有(不包括明确地弄乱堆栈,例如在一个asm块中),但如果你需要类似的东西,你可以使用_mallocaand 。_freea

编辑:正如 BoBTFish 所指出的:If it was allocated on the stack, _freea does nothing所以这个答案是不正确的 wrt 提前释放内存。但是,我认为最好不要删除它,因为它指向一种_alloca更安全的替代方法。

于 2012-09-26T10:30:57.173 回答