日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++中的delete和delete[]

發布時間:2023/12/9 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++中的delete和delete[] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?c++中的delete和delete[]

昨天寫了一篇關于delete和delete[]的文章,有位仁兄指出我的結論是錯誤的,那樣的結果只會在特定的編譯器程序。為了不會誤導大家,文章意見刪除。回家后仔細看了《Effective C++》,是我看書太不仔細了,雖然忘了那位仁兄是誰了,在這里還是謝謝你。現將《Effective C++》中正確的觀點、結論摘錄如下:
  1. 當你使用new時,有兩件事會發生。第一,內存被配置(透過函數operator new)。第二,會有一個(或以上)的constructors針對此內存被調用。當你使用delete時,也有兩件事發生:一個(或以上)的destructors會針對此內存被調用,然后內存被釋放(透過函數operator delete)。
  2. 如果你使用delete是未加括號,delete便假設刪除對象是單一對象。否則便假設刪除對象是個數組。
  3. string *stringPtr1 = new string;
  string *stringPtr2 = new string[100];
  ……
  delete stringPtr1;
  delete [] stringPtr2;
  如果你對著stringPtr1使用“[]”形式,其結果未定義。如果你對著stringPtr2沒有使用“[]”形式,其結果亦未定義。猶有進者,這對內建型別如int者亦未定義,即使這類型別并沒有destructors。
  4. 因此,游戲規則很簡單,如果你在調用new時使用了[],則你在調用delete時也使用[],如果你在調用new的時候沒有[],那么你也不應該在調用時使用[]。?

轉自:http://www.wangchao.net.cn/bbsdetail_43438.html

轉載于:https://www.cnblogs.com/wintergrass/archive/2011/05/08/2040402.html

總結

以上是生活随笔為你收集整理的c++中的delete和delete[]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。