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

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

運(yùn)算符new將內(nèi)存初始化為零

運(yùn)算符new將內(nèi)存初始化為零

C++
翻翻過去那場(chǎng)雪 2019-08-01 16:23:05
運(yùn)算符new將內(nèi)存初始化為零有這樣的代碼:#include <iostream>int main(){  unsigned int* wsk2 = new unsigned int(5);  std::cout << "wsk2: " << wsk2 << " " << *wsk2 << std::endl;  delete wsk2;  wsk2 = new unsigned int;  std::cout << "wsk2: " << wsk2 << " " << *wsk2 << std::endl;  return 0;}結(jié)果:wsk2: 0x928e008 5wsk2: 0x928e008 0我讀過new沒有用零初始化內(nèi)存。但似乎它確實(shí)如此。它是如何工作的?
查看完整描述

3 回答

?
侃侃爾雅

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

operator new不保證將內(nèi)存初始化為任何內(nèi)容,并且在沒有new-initializer的情況下分配a 的new-expression會(huì)使對(duì)象具有不確定的值。unsigned int

讀取未初始化對(duì)象的值會(huì)導(dǎo)致未定義的行為。未定義的行為包括評(píng)估零值而沒有不良影響但可能導(dǎo)致任何事情發(fā)生,因此您應(yīng)該避免導(dǎo)致它。

在C ++ 11中,使用的語(yǔ)言是分配的對(duì)象是默認(rèn)初始化的,對(duì)于非類類型意味著不執(zhí)行初始化。這與C ++ 03 中default-initialized的含義不同。


查看完整回答
反對(duì) 回復(fù) 2019-08-01
?
搖曳的薔薇

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

對(duì)于一些編譯器,new的調(diào)試版本將初始化數(shù)據(jù),但肯定沒有什么可以依賴。

存儲(chǔ)器也可能從之前的使用中獲得0。不要假設(shè)刪除和新內(nèi)存之間沒有任何內(nèi)容發(fā)生。在背景中可能會(huì)有一些你從未注意到的事情。此外,相同的指針值可能不是相同的物理內(nèi)存。內(nèi)存頁(yè)面被移動(dòng)并被分頁(yè)輸入。指針可能被映射到一個(gè)完全不同的位置。

底線:如果您沒有專門初始化內(nèi)存位置,那么您可以不假設(shè)其內(nèi)容。在使用內(nèi)存之前,內(nèi)存管理器甚至可能不會(huì)分配特定的物理內(nèi)存位置。

現(xiàn)代內(nèi)存管理非常復(fù)雜,但作為一名C ++程序員,你并不在乎(主要是?)。遵守規(guī)則,你不會(huì)遇到麻煩。

?如果您正在優(yōu)化以減少頁(yè)面錯(cuò)誤,您可能會(huì)在意。


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

添加回答

舉報(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)