标签: c memory-management
我在手册页中阅读了this:
在许多系统上,不能在参数列表中使用alloca() 函数调用,因为alloca()保留的堆栈空间会 出现在函数空间中间的堆栈上 参数。
我相信alloca() 大致此实现:
alloca()
void *alloca(size_t size) { <sp> -= size; /* the initial value of the stack pointer*/ return <sp>; }
我很高兴了解这个bug的含义。