delete[] 的問題

經常有這種case, 使用new char[]申請了一個字符數組,然後,由於寫作疏忽,delete的時候忘記加 “[]”了。

從C++的spec來說,new[] 和 delete[]必須必須要配對使用,這樣才能保證申請的內存爲徹底釋放掉;現實中,其實是有一些出入的,一些現在比較流行的編譯器通常能夠handle這類的case,它們有時候會給出一些警告信息來。譬如:常見的GCC和Visual C++是能夠自動用 delete[]來替換程序員的疏忽。

但是,千萬要注意的是:這個行爲是完全編譯器相關的,某些編譯器尤其是嵌入式系統的編譯器,通常不支持這個特性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章