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

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

在結(jié)構(gòu)上使用“new”在堆或堆棧上分配它嗎?

在結(jié)構(gòu)上使用“new”在堆或堆棧上分配它嗎?

揚(yáng)帆大魚 2019-07-31 14:26:13
在結(jié)構(gòu)上使用“new”在堆或堆棧上分配它嗎?使用new運(yùn)算符創(chuàng)建類的實(shí)例時(shí),將在堆上分配內(nèi)存。當(dāng)您使用new運(yùn)算符創(chuàng)建結(jié)構(gòu)的實(shí)例時(shí),在堆上還是堆棧上分配內(nèi)存?
查看完整描述

3 回答

?
PIPIONE

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

包含結(jié)構(gòu)字段的內(nèi)存可以在堆?;蚨焉戏峙洌唧w取決于具體情況。如果struct-type變量是某個(gè)匿名委托或迭代器類未捕獲的局部變量或參數(shù),那么它將在堆棧上分配。如果變量是某個(gè)類的一部分,那么它將在堆上的類中分配。

如果在堆上分配結(jié)構(gòu),則實(shí)際上不需要調(diào)用new運(yùn)算符來分配內(nèi)存。唯一的目的是根據(jù)構(gòu)造函數(shù)中的任何內(nèi)容設(shè)置字段值。如果未調(diào)用構(gòu)造函數(shù),則所有字段都將獲得其默認(rèn)值(0或null)。

類似地,對(duì)于在堆棧上分配的結(jié)構(gòu),除了C#要求所有局部變量在使用之前設(shè)置為某個(gè)值,因此您必須調(diào)用自定義構(gòu)造函數(shù)或默認(rèn)構(gòu)造函數(shù)(不帶參數(shù)的構(gòu)造函數(shù)始終可用于結(jié)構(gòu))。


查看完整回答
反對(duì) 回復(fù) 2019-07-31
?
茅侃侃

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

簡(jiǎn)單地說,new是結(jié)構(gòu)的用詞不當(dāng),調(diào)用new只是調(diào)用構(gòu)造函數(shù)。結(jié)構(gòu)的唯一存儲(chǔ)位置是它定義的位置。

如果它是一個(gè)成員變量,它將直接存儲(chǔ)在它定義的任何內(nèi)容中,如果它是局部變量或參數(shù),則它存儲(chǔ)在堆棧中。

將其與類對(duì)比,這些類在結(jié)構(gòu)完整存儲(chǔ)的任何地方都有引用,而引用指向堆上的某處。(堆棧中的本地/參數(shù))

它可能有助于深入了解C ++,其中class / struct之間沒有真正的區(qū)別。(在語言中有類似的名稱,但它們只引用事物的默認(rèn)可訪問性)當(dāng)您調(diào)用new時(shí),您將獲得指向堆位置的指針,而如果您有非指針引用,則它將直接存儲(chǔ)在堆棧上或在另一個(gè)對(duì)象中,ala結(jié)構(gòu)在C#中。


查看完整回答
反對(duì) 回復(fù) 2019-07-31
  • 3 回答
  • 0 關(guān)注
  • 997 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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