曲径通幽论坛

标题: 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