第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

自由如何知道有多少自由?

自由如何知道有多少自由?

C++ C
躍然一笑 2019-06-20 16:25:06
自由如何知道有多少自由?在C編程中,您可以將任何類型的指針作為參數(shù)傳遞給空閑,它如何知道分配給空閑的內存的大???每當我傳遞指向某個函數(shù)的指針時,我也必須傳遞大小(即由10個元素組成的數(shù)組需要接收10個作為參數(shù)才能知道數(shù)組的大小),但我不必將大小傳遞給空閑函數(shù)。為什么不呢?我可以在我自己的函數(shù)中使用同樣的技術來避免在數(shù)組長度的額外變量周圍移動嗎?
查看完整描述

3 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

當你打電話malloc(),指定要分配的內存量。實際使用的內存量略高于此,并包含額外的信息,這些信息記錄(至少)塊的大小。您不能(可靠地)訪問其他信息-而且您也不應該:-)。

當你打電話free()它只需查看額外的信息,就可以了解塊有多大。


查看完整回答
反對 回復 2019-06-20
?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

C內存分配函數(shù)的大多數(shù)實現(xiàn)將存儲每個塊的記帳信息,無論是在線的還是單獨的。

一種典型的方式(在線)是實際分配一個頭和你想要的內存,填充到最小的大小。例如,如果您請求20個字節(jié),系統(tǒng)可能會分配一個48字節(jié)的塊:

  • 16字節(jié)頭,包含大小、特殊標記、校驗和、指向下一個/前一個塊的指針等。
  • 32字節(jié)數(shù)據(jù)區(qū)域(20個字節(jié)被填充到16的倍數(shù))。

然后提供給您的地址是數(shù)據(jù)區(qū)域的地址。然后,當你解放了這個街區(qū),free只需取下你給它的地址,假設你沒有把地址或它周圍的內存塞滿,就在它前面檢查會計信息。從圖形上看,這將遵循以下方針:

 ____ The allocated block ____
/                             \
+--------+--------------------+
| Header | Your data area ... |
+--------+--------------------+
          ^
          |
          +-- The address you are given

請記住頭部的大小和填充是完全定義的(實際上,整個事情都是由實現(xiàn)定義的)。(A)但在線會計選項是常見的)。

會計信息中存在的校驗和以及特殊標記常常是導致錯誤的原因,如“內存場損壞”或“雙空閑”(如果您覆蓋它們或釋放它們兩次)。

填充(使分配更有效)是為什么有時可以在請求空間的末尾寫一點內容而不會引起問題(盡管如此,不要這樣做,這是未定義的行為,僅僅因為它有時工作,并不意味著可以這樣做)。


(A)我編寫了malloc在嵌入式系統(tǒng)中,不管您想要什么(這是系統(tǒng)中最大結構的大小),只要您請求128字節(jié)或更少(請求更多將滿足空返回值),就會得到128個字節(jié)。使用一個非常簡單的位掩碼(即不在線)來決定是否分配了128字節(jié)塊。

我開發(fā)的其他程序也有不同的池,用于16字節(jié)塊、64字節(jié)塊、256字節(jié)塊和1K塊,同樣使用位掩碼來決定所使用或可用的塊。

這兩個選項都設法減少了會計信息的開銷,并提高了mallocfree(解放時不需要合并相鄰的區(qū)塊),特別是在我們工作的環(huán)境中。


查看完整回答
反對 回復 2019-06-20
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

comp.lang.c常見問題清單:免費如何知道要釋放多少字節(jié)?

malloc/free實現(xiàn)在分配時會記住每個塊的大小,因此沒有必要在釋放時提醒它大小。(通常情況下,大小存儲在分配塊的旁邊,這就是為什么如果分配的塊的邊界稍微超出一些,通常情況就會嚴重中斷)。


查看完整回答
反對 回復 2019-06-20
  • 3 回答
  • 0 關注
  • 428 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號