我正在修改C,遇到了alloca/free函数,该函数被描述为在像空间这样的堆栈上分配存储。这和malloc/free一样吗?还是这有所不同?谢谢。

最佳答案

我认为您的意思是alloca,用于在堆栈上分配内存。是的,这与在堆上分配的mallocfree不同。

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

使用alloca和/或C99可变长度数组可能会有风险,因为如果不小心使用这些工具,很容易使堆栈溢出。

关于c - C语言中的alloca函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9144686/

10-11 04:36