基于堆栈的内存分配
计算机中的堆栈是电脑记忆体区域,其中以后进先出 (LIFO)方式添加或删除数据。
在大多数现代计算机系统中,每个线程都会被分配一定的内存区域,称为堆栈。当一个函数执行时,它可能会将一些数据添加到栈顶;当函数准备停止执行时,它负责从堆栈中删除该数据。线程的堆栈用于存储调用者提供的返回地址的位置,以便让返回语句返回到正确的位置。此外堆栈还会用于存储当前活动函数的固定长度变量。程序员也可以使用堆栈来存储可变长度的数据。
系统
许多类Unix系统以及Microsoft Windows都实现了一个名为alloca
的函数,用于动态分配堆栈内存。[1][2]该函数早在UNIX/32V(1978) 时就出现在Unix系统上,但不是ANSI C或任何可移植操作系统接口标准的一部分。