c ++从堆栈中释放“_alloca”内存

时间:2012-09-26 09:52:19

标签: c++ alloca

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

没有没有(不包括明确地混淆堆栈,例如在asm块中)但是如果你需要这样的东西,你可以使用_malloca_freea

编辑:正如BoBTFish所说:If it was allocated on the stack, _freea does nothing所以这个答案是不正确的,因为早先释放了内存。但是,我认为最好不要删除它,因为它指的是_alloca的替代方案,这有点安全。