我知道_alloca的行为是在离开函数时从堆栈中释放内存。有没有办法更早释放内存?
不。无论如何,使用_alloca
是没有意义的 - 您可以编写一个高速池内存分配器,该分配器可以更快地从堆中分配和解除分配,并且具有更少的大小限制。
没有(不包括显式弄乱堆栈,例如在asm
块中),但如果你需要这样的东西,你可以使用 _malloca
和 _freea
。
编辑:正如BoBTFish指出的那样:If it was allocated on the stack, _freea does nothing
所以这个答案是不正确的,因为更早地释放内存。但是,我认为最好不要删除它,因为它指向_alloca
更安全的替代方案。