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

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

請解答一下關(guān)于C語言的3個(gè)問題?

請解答一下關(guān)于C語言的3個(gè)問題?

C
GODDOOGE 2018-05-11 17:48:59
請問一下free是不是將標(biāo)記為已使用的地址改為未使用,也就是里面的數(shù)據(jù)并未清空,只是改了下“標(biāo)記”?還有個(gè)問題就是用malloc創(chuàng)建一個(gè)在子函數(shù)中的數(shù)組,這個(gè)數(shù)組是動態(tài)存儲類型嗎,是不是自動存儲類型(動態(tài)與自動的關(guān)系是什么?)?它離開作用域是不是存儲內(nèi)容不會被清除?
查看完整描述

1 回答

已采納
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊

請問一下free是不是將標(biāo)記為已使用的地址改為未使用,也就是里面的數(shù)據(jù)并未清空,只是改了下“標(biāo)記”?

你說的這些是在猜測 free 的具體實(shí)現(xiàn)。 C 標(biāo)準(zhǔn)沒有規(guī)定 free 具體實(shí)現(xiàn)應(yīng)該如何,所以這個(gè)問題沒有標(biāo)準(zhǔn)答案。

C 標(biāo)準(zhǔn)只是規(guī)定:

  • free 的參數(shù)必須是之前由庫函數(shù)分配內(nèi)存而來的指針,或是 null 指針

  • 參數(shù)如果之前被 free 了,則函數(shù)的行為是未定義的

  • 訪問已被 free 的指針的行為是未定義的

當(dāng)然,你的猜測也是有道理的。確實(shí)很多實(shí)現(xiàn)是這樣的。

也許你的這些思考對你學(xué)習(xí)理解 C 語言有幫助。但是在學(xué)習(xí)和使用 C 語言時(shí)要記?。耗悴粦?yīng)該假定你的編譯器會如何實(shí)現(xiàn),只應(yīng)該按照規(guī)定的語法規(guī)則來使用 C。



還有個(gè)問題就是用malloc創(chuàng)建一個(gè)在子函數(shù)中的數(shù)組,這個(gè)數(shù)組是動態(tài)存儲類型嗎,是不是自動存儲類型(動態(tài)與自動的關(guān)系是什么?)?

是你說的“動態(tài)存儲類型”的。其實(shí)就是指需要動態(tài)管理的內(nèi)存(用 malloc 分配、free 釋放...等)。

那當(dāng)然就不是“自動存儲類型”的了。你通常定義的普通變量一般都屬于這種“自動類型”,這樣的變量所占用的內(nèi)存只在它所在的作用域中存在,離開其作用域后就會被銷毀。

這兩種存儲類型的區(qū)別簡單地說就是這樣的。

所以才會強(qiáng)調(diào)說“手動分配的內(nèi)存一定要記得 free 掉,不然就會內(nèi)存泄漏”,就是因?yàn)檫@些所謂“動態(tài)存儲類型”并不會被自動銷毀。

查看完整回答
2 反對 回復(fù) 2018-05-11
  • 1 回答
  • 0 關(guān)注
  • 934 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號