- 程序中的“ 函数调用栈”是栈数据结构的一种应用
- 函数调用栈一般是从高地址向低地址增长的
栈底为内存的高地址处
栈顶为内存的低地址处 (目前的i386系列机子)
- 函数调用栈中存储的数据为活动记录
活动记录是函数调用时一系列相关信息的记录
函数调用过程
- 程序中的栈 程序栈空间在本质上是一种顺序栈 (而顺序栈从一开始创建完成之后大小是固定的)
在不断的压栈过程中造成栈空间耗尽而产生
栈溢出
栈溢出常由于
函数递归过深
或
局部数组过大
造成

递归示例1
#include <stdio.h>
void p(int w)
{
if(w > 0)
{
printf("%d ", w);
p(w - 1);
p(s - 1);
}
}
int main()
{
p(4);
return 0;
}
