递归的实现和内存问题

递归的实现和内存问题
如图,有这样一个使用递归的Age函数。
当调用这个函数时,在栈中为它分配了一块内存,实际就是为变量n分配了一块内存,因为还没有到达边界值,所以会一直调用自己,那么就会一直产生新的变量,又要为新的变量分配内存,而不会覆盖在一开始的内存上。
当返回一个值一后,函数才意味着执行完,内存才会被释放,也就是说,如图,对递归来讲,只有执行到边界时,才开始返回值,当数据很大时,这需要大量的内存,也会消耗相对较多的时间,而栈的内存是有限的,大概在1M左右,所以容易使程序崩溃。