澄清alloca()错误

时间:2017-03-01 01:36:47

标签: c memory-management

我在手册页中阅读了this

  

在许多系统上,不能在参数列表中使用alloca()   函数调用,因为alloca()保留的堆栈空间会   出现在函数空间中间的堆栈上   参数。

我相信alloca() 大致此实现:

void *alloca(size_t size)
{
    <sp> -= size; /* the initial value of the stack pointer*/
    return <sp>;
}

我很高兴了解这个bug的含义。

  1. 涉及哪些问题?覆盖参数?也
  2. 我不明白为什么你会把这个功能用作 回调把它作为另一个函数的参数。

0 个答案:

没有答案