亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

刪除等于刪除嗎?

刪除等于刪除嗎?

C++
臨摹微笑 2019-06-17 16:21:59
刪除等于刪除嗎?IP_ADAPTER_INFO *ptr=new IP_ADAPTER_INFO[100];如果我自由使用delete ptr;它會導致內存泄漏嗎?如果不是,那為什么?這是VS 2005生成的反匯編代碼。; delete ptr;0041351D  mov         eax,dword ptr [ptr] 00413520  mov         dword ptr [ebp-0ECh],eax  00413526  mov         ecx,dword ptr [ebp-0ECh] 0041352C  push        ecx   0041352D  call        operator delete (4111DBh) 00413532  add         esp,4 ; delete []ptr;00413535  mov          eax,dword ptr [ptr] 00413538  mov         dword ptr [ebp-0E0h],eax  0041353E  mov         ecx,dword ptr [ebp-0E0h] 00413544  push        ecx   00413545  call        operator delete[] (4111E5h) 0041354A  add         esp,4
查看完整描述

3 回答

?
MMTTMM

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

這是否會導致記憶泄漏,擦拭硬盤,讓你懷孕,讓惡毒的鼻涕鬼在你的公寓里追趕你,還是讓一切正常運轉,沒有明顯的問題,都是未知的??赡苁沁@樣的,一個編譯器,另一個編譯器,一個新的編譯器版本,每一個新的編譯,月亮的相位,你的心情,或者取決于在最后一個晴朗的下午通過處理器的中微子的數量。也可能不會。

所有這些,以及無限多的其他可能性,都被用在一個術語中:未定義行為:

離它遠點。


查看完整回答
反對 回復 2019-06-17
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

它通常不會泄漏,因為在POD的情況下,析構函數是微不足道的,并且沒有必要調用它們。delete釋放數組占用的內存。內存去分配只需要一個指針值,因此它將被返回到堆中。該數組包含一個連續的內存塊,因此,取消分配可能是成功的,就好像它是一個單個元素的去分配一樣。

但不要依賴這一點,因為這是不明確的行為。也許它正常工作,也許發生了一些可怕的事情,在這個編譯器上工作,在另一個編譯器上不起作用,許多人感謝你植入了一個錯誤。

看見這個答案關于細節。


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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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