Skip to main content

[CS] 堆疊和堆積(Stack and Heap)

Stack(堆疊)#

  • Stack 是用來保存由函式所產生的暫時性變數(區域變數),這些變數會在 runtime 的過程中會宣告、保存和初始化。
  • 它使用的是暫時性的記憶體空間,一但任務完成(函式執行結束後),這些記憶體會自動被抹去
  • 特性是 LIFO(Last In First Out,後進先出)

Heap(堆積)#

  • heap 是程式語言用來保存全域變數(global variables)的記憶體位址,預設的情況下,所有全域變數都會保存在 heap memory 中,

使用 Heap 或 Stack#

  • 如果需要分派一大塊記憶體空間,則應該使用 heap
  • 如果只是處理在函式中會用到的變數,則應該使用 stack

資料來源#

Last updated on