malloc/free 和 new/delete
生活随笔
收集整理的這篇文章主要介紹了
malloc/free 和 new/delete
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(本文參考于網上)
首先兩者都可用于申請動態內存和釋放內存。
對于非內部數據類型的對象而言,只用malloc/free無法滿足動態對象的要求。對象在創建的同時要自動執行構造函數,對象在消亡之前要自動執行析構函數。由于malloc/free是庫函數而不是運算符,不在編譯器控制權限之內,不能夠把執行構造函數和析構函數的任務強加給malloc/free。
因此C++語言需要一個能完成動態內存分配和初始化工作的運算符new,以及一個能完成清理與釋放內存工作的運算符delete。new/delete不是庫函數而是運算符
malloc 是C語言的標準庫函數,它實現了在堆內存管理中進行按需分配的機制,但是它不提供在C++中對像構造的支持,而new 則是一個 在C++中同時完成堆內存按需分配支持和對像構造功能的運算符。
?
對于這兩者需要注意的是:
(1)內存分配可能失敗,所以在動態分配之后需要檢驗一下是否分配成功。
(2)在釋放內存后,需要將指針置空,否則可能變成“野”指針。
轉載于:https://www.cnblogs.com/zyb993963526/p/10438066.html
總結
以上是生活随笔為你收集整理的malloc/free 和 new/delete的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的MVC与SQL Server Ex
- 下一篇: dorado-SplitSpanel控件