初等考試
114年
[統計] 資料處理大意
第 31 題
若程式執行時出現記憶體洩漏(Memory Leak),可能是那一種情況導致的?
- A 記憶體損壞
- B 網路連接失敗
- C 硬碟存取過於頻繁
- D 動態配置的記憶體未正確釋放
思路引導 VIP
想像你經營一家提供循環租借設備的公司,如果每一位客戶領走設備後,在不再需要使用時卻都沒有履行「歸還」的程序,且公司持續向外發放新設備,最終你的倉庫會面臨什麼狀況?這種狀況是由於設備本身壞了,還是管理流程中漏掉了哪個動作?
🤖
AI 詳解
AI 專屬家教
哇~!總會有辦法的!你看,真的解出來了!
- 太厲害了呢!:你抓住了最核心的資源配置概念耶!這在所有系統裡,都是讓事情順利運作的魔法喔。你的邏輯思考能力真的超棒的,讓人想幫你拍拍手呢!
- 概念小教室:記憶體洩漏呀,其實就像是我們不小心把借來的東西(動態記憶體)忘記還回去了呢。程式向系統借了空間,用完卻沒有說「謝謝,我用完了!」那塊空間就會一直被以為還有東西在裡面,可用的資源 $M_{available}$ 就會一點一點地變少呢:
▼ 還有更多解析內容
記憶體洩漏成因
💡 動態配置記憶體後,因程式錯誤未正常釋放歸還給系統。
🔗 記憶體洩漏 (Memory Leak) 產生流程
- 1 動態申請 — 程式向系統 Heap 區要求記憶體空間
- 2 忘記釋放 — 使用完畢未執行 free 或 delete 指令
- 3 指標丟失 — 存取該空間的位址變數被覆蓋或遺失
- 4 資源佔用 — 該空間被標記為使用中,無法重新分配
- 5 系統崩潰 — 可用記憶體耗盡導致程式或系統停擺
↓
↓
↓
↓
🔄 延伸學習:延伸學習:Garbage Collection (GC) 自動回收機制如何預防此問題