| 維度 | 數據結構「棧」 | 程序內存「棧」 |
|---|---|---|
| 定義 | 後進先出 (LIFO) 的邏輯結構 | 操作系統為線程分配的連續內存區域 |
| 實現形式 | 順序棧(數組)、鏈棧(鏈表) | 僅有一種:連續地址空間,向下/向上增長 |
| 操作 | push/pop/peek | 函數調用入棧/出棧(保存返回地址、局部變量、寄存器) |
| 管理者 | 程序員編寫代碼管理 | 編譯器/運行時自動管理 |
| 溢出表現 | 邏輯錯誤(數組越界/內存耗盡) | StackOverflowError(棧幀過深/大數組) |
int a[100] → 棧上(函數幀內)。new int[100] / malloc → 堆上。嚴格區分邏輯結構(數據結構棧/隊列/樹/圖)與物理存儲區(棧/堆/數據段/代碼段),兩者不同維度概念,切勿混淆。