基於堆棧的內存分配
計算機中的堆棧是電腦記憶體區域,其中以後進先出 (LIFO)方式添加或刪除數據。
在大多數現代計算機系統中,每個線程都會被分配一定的內存區域,稱為堆棧。當一個函數執行時,它可能會將一些數據添加到棧頂;當函數準備停止執行時,它負責從堆棧中刪除該數據。線程的堆棧用於存儲調用者提供的返回地址的位置,以便讓返回語句返回到正確的位置。此外堆棧還會用於存儲當前活動函數的固定長度變量。程序員也可以使用堆棧來存儲可變長度的數據。
系統
許多類Unix系統以及Microsoft Windows都實現了一個名為alloca
的函數,用於動態分配堆棧內存。[1][2]該函數早在UNIX/32V(1978) 時就出現在Unix系統上,但不是ANSI C或任何可移植操作系統接口標準的一部分。