[問題] 記憶體管理的 design pattern

看板C_and_CPP作者 (三腳貓的把戲)時間13年前 (2012/03/07 12:41), 編輯推噓2(208)
留言10則, 4人參與, 最新討論串1/1
 各位大大好,  我想問看看有沒有這樣子的 design pattern 或者是寫法可以參考的...  在我自己寫的 Lib 裡,用了許多malloc(),為了求跨平台,  希望內部可以不要自己向系統要記憶體,而是由外部先配好記憶體,  透過 API 傳進 Lib,內部拿到這塊記憶體之後,自己配置、管理;  請問,有沒有這類功能可參考的寫法呢?  另外,如果外部不管三七二十一,硬是砍了記憶體,那 Lib 不就挫賽了...  有什麼方式可以避免這種可怕的事情發生嗎(?) --  追根究底所得到的東西,是失望的觀眾,以及狼狽的魔術師... De'Ring Practice http://www.wretch.cc/blog/miauwally/21246514 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.19.235

03/07 21:08, , 1F
再用container裝一下? 有些直譯語言就有這種情形
03/07 21:08, 1F

03/07 21:08, , 2F
寫extension就會遇到,PHP自己有個包裝過得emalloc()
03/07 21:08, 2F

03/07 21:10, , 3F
Perl/Python/Ruby則是整個複製 我是說傳遞字串的時候
03/07 21:10, 3F

03/07 21:11, , 4F
喔 第一句跟跟後面沒關係XD
03/07 21:11, 4F

03/07 23:14, , 5F
你需要的應該是 memory pool, 搜尋一下可以找到很多實作
03/07 23:14, 5F

03/07 23:15, , 6F
或者直接用boost 的memory pool
03/07 23:15, 6F

03/07 23:16, , 7F
隨便C runtime的malloc() source
03/07 23:16, 7F

03/07 23:17, , 8F
另malloc是標準API,本來就跨平台,只是比較容易記憶體破碎
03/07 23:17, 8F

03/08 08:33, , 9F
雖然malloc()標準API,不過我遇到的是不標準平台... QwQ
03/08 08:33, 9F

03/08 08:34, , 10F
感謝以上大大們的回覆(研究中)
03/08 08:34, 10F
文章代碼(AID): #1FLrTn-T (C_and_CPP)