Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道 _alloca 的行为是在您离开函数时从堆栈中释放内存。有没有办法提前释放内存?
没有。无论如何使用_alloca都没有意义——您可以编写一个高速池内存分配器,它可以更快地从堆中分配和解除分配,并且大小限制更少。
_alloca
不,没有(不包括明确地弄乱堆栈,例如在一个asm块中),但如果你需要类似的东西,你可以使用_mallocaand 。_freea
asm
_malloca
_freea
编辑:正如 BoBTFish 所指出的:If it was allocated on the stack, _freea does nothing所以这个答案是不正确的 wrt 提前释放内存。但是,我认为最好不要删除它,因为它指向一种_alloca更安全的替代方法。
If it was allocated on the stack, _freea does nothing