曲径通幽论坛
标题:
alloca() -- 自动释放被分配的内存空间
[打印本页]
作者:
beyes
时间:
2011-5-23 11:39
标题:
alloca() -- 自动释放被分配的内存空间
alloca() 和 malloc() 都是内存空间分配函数,但是两者不同,malloc() 是从堆中分配存储空间,而 alloca() 是从栈帧中分配。这样做的优点是:当函数返回时,它会自动释放它所有使用的栈帧,所以不必要为忘记释放空间而担心造成
内存泄露
。但也有一点缺点,因为内存从栈帧分配,所以会增加栈帧的长度,而某些系统可能不支持此函数(也就是说,函数被调用后不支持增加栈帧长度),但是 Linux 是支持的。
该函数的定义如下:
[C++]
纯文本查看
复制代码
#include <alloca.h>
void *alloca(size_t size);
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2