連結器與載入器與執行檔格式
反覆進行malloc與free後,儘管剩餘記憶體的總量足夠,卻無法一次配置大塊區域。這種現象稱為什麼?
- A記憶體洩漏
- B碎裂(fragmentation)
- C堆疊溢位
查看答案與解析
正確答案:B. 碎裂(fragmentation)
反覆配置與釋放大小不一的區域後,使用中的區域之間會散布著零碎的空閒空間。即使空閒的總量很大,只要沒有連續的大塊空閒區域,配置大塊記憶體就會失敗。這稱為碎裂。記憶體配置器會依大小分開管理,或合併相鄰的空閒區域,以減少碎裂。對於長時間持續運作的嵌入式裝置,尤其需要注意。
- A. 記憶體洩漏是因忘了釋放而使可用記憶體減少。
- B. 正確。是空閒區域被切得很零碎的狀態。
- C. 堆疊溢位是超過堆疊的上限。