回覆列表
  • 1 # 豆餅科技

    程式中所用的資料分別存放在靜態儲存區和動態儲存區中。靜態儲存區資料在程式的開始就分配好記憶體區,在整個程式執行過程中它們所佔的儲存單元是固定的,在程式結束時就釋放,因此靜態儲存區資料一般為全域性變數。動態儲存區資料則是在程式執行過程中根據需要動態分配和動態釋放的儲存單元,動態儲存區資料有三類函式形參變數、區域性變數和函式呼叫時的現場保護與返回地址。由於動態儲存變數可以根據函式呼叫的需要,動態地分配和釋放儲存空間,大大提高了記憶體的使用效率,使得動態儲存變數在程式中被廣泛使用。

    開發人員進行程式開發的過程使用動態儲存變數時,不可避免地面對記憶體管理的問題。程式中動態分配的儲存空間,在程式執行完畢後需要進行釋放。沒有釋放動態分配的儲存空間而造成記憶體洩漏,是使用動態儲存變數的主要問題。一般情況下,開發人員使用系統提供的記憶體管理基本函式,完成動態儲存變數儲存空間的分配和釋放。

    但是,當開發程式中使用動態儲存變數較多和頻繁使用函式呼叫時,就會經常發生記憶體管理錯誤,所以問題一般出現在軟體開發者,系統並不能完全百分之百回收

  • 2 # 左響腳

    因為只有程序退出時,作業系統才會收回程序申請的記憶體,而程序執行期間,記憶體只能程序自己管理記憶體,作業系統不知道哪些可以回收了。如果你的程式執行完就退出的確不用考慮記憶體瀉漏問題,然而很多程式都是長期執行,就不得不考慮記憶體瀉漏問題了

  • 中秋節和大豐收的關聯?
  • 90nm光刻機能做啥樣的手機?