C++ 从堆栈中释放 "_alloca" TED 内存

c++ releasing "_alloca" ted memory from stack

本文关键字:alloca TED 内存 释放 堆栈 C++      更新时间:2023-10-16

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

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

没有(不包括显式弄乱堆栈,例如在asm块中),但如果你需要这样的东西,你可以使用 _malloca_freea

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