Re: [問題] 沒有作業系統的動態記憶體管理
※ 引述《mingtai1 (綠豆嘉義人)》之銘言:
: 請問一下各位大大
: C裡面, 印象中要用動態記憶體管理像是malloc這種功能,
: 是不是都要有OS支援才可以 ?
: 那如果在沒有OS的環境下跑 (例如用ARM編譯到某種電路板上跑的程式)
: 是不是這種功能就得要完全自己寫了呢
: 那如果要自己寫, 要怎麼得知目前記憶體的使用狀況勒?
: 不知道這樣問會不會太怪 @_@
把可用的記憶體視為一個大陣列,另外維護一個對照表
標示哪裡正在使用中,哪些可以用
也就是自己維護一個memory pool
基本的想法是,有一個指標new,這個new隨時指向可用的記憶體
如果記憶體滿了,那麼new = NULL
而表裡面每一項entry除了in_use以外,還要有一個nextfree指標
alloc記憶體的函數要可以尋找適當大小的連續區塊
陣列可以替換為其他資料結構,如heap等,原則不變
--
BATCH 03 : 買張床 - 切達大俠 - 伐木人之歌 - http://tinyurl.com/3zpyx5
[B4準備中]: 謳歌金錢(7/02) - 單車超人(7/23) - http://tinyurl.com/66v6vq
[ 番外篇 ]: 包租婆也有過當羅莉的時候(7/17) - http://tinyurl.com/6j4ale
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
■ 蒙帝派松正體中文計畫 ■ Spam-a-lot and enjoy the pythonesque delight!
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ http://www.youtube.com/user/JamesBondXD▄▄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.206.183
推
08/16 10:55, , 1F
08/16 10:55, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):