[問題] 關於配置記憶體之後,釋放其中一部分的問題?

看板LinuxDev作者 (啦 )時間16年前 (2009/06/08 12:21), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串1/1
請教一下,一般我們用 malloc() 之後回傳的指標會用於 free(), 如果我現在只想從我配置的一大塊記憶體之中,只釋放其中一小 部份,不知道這樣子做不做的到?感謝回答 :> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.211.196

06/08 20:36, , 1F
void* realloc(void *ptr, size_t size);
06/08 20:36, 1F

06/08 20:55, , 2F
請問 realloc() 可以讓我原本的資料還在嗎?
06/08 20:55, 2F

06/08 20:55, , 3F
我希望的是我將其中一部分釋放掉,但是之後的資料還是
06/08 20:55, 3F

06/08 20:56, , 4F
繼續存在,感謝 :> 如果不行,自己大概要做個
06/08 20:56, 4F

06/08 20:56, , 5F
memory pool 了吧 :S
06/08 20:56, 5F

06/09 12:00, , 6F
我感覺你需要的是 Link list. (或是 memmove ?)
06/09 12:00, 6F

06/09 12:27, , 7F
嗯,現在的想法就是用 linked list 建 memory pool
06/09 12:27, 7F

06/10 13:16, , 8F
realloc當然資料還在~ 不然就沒意義啦~
06/10 13:16, 8F

06/10 13:16, , 9F
夠大會直接擴充,不夠大會重新找一塊,幫你複製原本的過去
06/10 13:16, 9F
文章代碼(AID): #1ABG8oIi (LinuxDev)
文章代碼(AID): #1ABG8oIi (LinuxDev)