调用递归函数时如何分配内存?一个函数有它自己分配的内存。当调用它时,参数(而不是引用传递的参数)和变量将获得内存。因此,当函数从其体内再次调用时,内存是如何分配给第二个调用的变量和参数的?
发布于 2014-04-21 05:31:25
函数参数和局部变量被分配到堆栈上。他们形成了一个所谓的堆栈框架.当函数被递归调用时,为函数的每个递归调用分配堆栈帧。
例如,如果void ()被递归地调用了三次。
// Assume stack grows upwards
stack frame #3 <== the most recent call
stack frame #2
stack frame #1https://stackoverflow.com/questions/23191320
复制相似问题