C++ 从堆栈中释放 "_alloca" TED 内存
c++ releasing "_alloca" ted memory from stack
我知道_alloca的行为是在离开函数时从堆栈中释放内存。有没有办法更早释放内存?
不。无论如何,使用_alloca
是没有意义的 - 您可以编写一个高速池内存分配器,该分配器可以更快地从堆中分配和解除分配,并且具有更少的大小限制。
没有(不包括显式弄乱堆栈,例如在asm
块中),但如果你需要这样的东西,你可以使用 _malloca
和 _freea
。
编辑:正如BoBTFish指出的那样:If it was allocated on the stack, _freea does nothing
所以这个答案是不正确的,因为更早地释放内存。但是,我认为最好不要删除它,因为它指向_alloca
更安全的替代方案。
相关文章:
- 为什么这个 CMake 脚本找到"alloca"但仍然失败?
- 基于索引的 alloca 返回的指针访问和"placement new"的效果
- 使用 alloca 时出现访问冲突
- C++ 从堆栈中释放 "_alloca" TED 内存
- 如果使用alloca在内联函数中的堆栈上分配变量,那么在内联函数返回后,其引用是否有效
- 编译器将 malloc/free 或 new/delete 对优化为 alloca
- 多次调用alloca()会导致堆栈的连续部分
- 函数包装中的堆栈分配/函数中的alloca
- 何时使用alloca为类成员释放内存
- 这是使用alloca的好理由吗?
- 固定大小的数组vs alloca(或VLAs)
- 这样使用alloca()是否有效?
- 增加堆栈大小以使用alloca()
- alloca()可以代替c++中的自动指针吗?
- 无法编译需要 C99 编译器 (AFAIU) 的 pyethash python 包。错误 - 无法打开包含文件:"alloca.h"
- 如何在execvp()的实现中替换alloca