我有一些麻煩,實現我自己的動態內存分配使用隱式列表來追蹤在C空閒塊。 ****特別是我在與實施realloc的和改變從發現-FIT /最先匹配到下一個合適的代碼問題。最合適的將是理想的,但讓我們現在就說下一個適合。我已經得到的一切其他事情了,它只是對這兩個項目的具體...有問題,寫我自己的malloc,free和realloc
的詳細信息...
我試圖實現自己的動態內存分配的版本,用我自己的版本malloc,免費和10 realloc ...有四種方法用於跟蹤動態內存分配器中的空閒塊,這裏第一個是隱式列表,它使用一個頭。對於隱式列表中找到一個空閒塊有可以在隱式列表中頒佈了若干放置策略。其中第一個稱爲第一個適合或找到適合,它位於下面的代碼中......它從頭搜索列表,並選擇適合的第一個空閒塊。接下來的方法被稱爲這我無法嘗試執行下一個合適的,而這種方法類似於首次適應,但不是開始在列表的開頭每個搜索,它開始每個在以前的搜索不放過搜索。最後是最佳擬合...這將是我理想的方法,但我知道這是相當複雜和相當困難的,所以我會就在旁邊配合,但是,如果有一個人在那裏誰知道如何實現最佳匹配在一個隱含的列表請隨時發佈。最適合檢查每個免費塊,並選擇適合的最小尺寸的免費塊...我知道,對於最佳擬合,可以消除分配塊中的頁腳...主要是因爲它們實際上不是必需的......我「M只是不完全知道如何做到這一點...
我明白這是一個很大的代碼,但我只想把一切都放在一下子所以沒有東西遺漏。
我留下空間,realloc的返回NULL,是在代碼的中間,find_適應,我想改變的next_fit放置策略的方法是朝下方某處...
任何幫助將是非常感謝...謝謝。
的代碼都在這個網站...對不起...我在這裏張貼的代碼中的許多問題......更是這樣,因爲它是如此之大......我只是用谷歌這樣看起來更真實...
我已經清楚地標記的部分在網站上的代碼,所以應該沒有問題找到的realloc和找到合適的方法...
這是作業,或者你不應該*寫*自己的malloc :-)你可能永遠不會匹配現有的表現。這是什麼? – paxdiablo 2009-10-27 08:22:12
哈...沒有它的絕對不是功課...我已經完成了一個looong時間的學校...但感謝你的想法是...我現在感覺很多年輕:) – jingojango 2009-10-27 08:27:25
@ paxdiablo:你如果出於好奇,做自我教育或作爲一種愛好而做類似的事情的人數會驚人。我寫了一個C庫。有很多喜歡它,但這是我的。 ;-) – DevSolar 2009-10-27 09:27:52