C中的alloca函数

Cem*_*mre 10 c alloca

我正在修改C并遇到了alloca/free函数,这些函数被描述为像空间一样在堆栈上分配存储.与malloc/free相同吗?或者这是不同的东西?谢谢.

Dav*_*nan 22

我认为你的意思alloca是用于在堆栈上分配内存.是的,这是从不同的mallocfree它在堆上分配.

不要尝试释放分配的内存,alloca因为当调用的函数alloca返回其调用者时,它会自动释放.

使用alloca和/或C99可变长度数组可能是一项有风险的业务,因为如果您使用这些工具,您可能会很容易地溢出堆栈.

  • 第三段不能强调.使用`alloca`或VLA几乎没有安全的方法. (4认同)