Malloc/Free VS. New/Delete的差異
Mar 31, 2021
我知道你很趕。先說結論:
malloc和free原本用於C語言,但也可以用在C++
new和delete僅限用於C++語言
差別在於有沒有進到建構函式(Constructor)以及解構函式
malloc和free只是動態分配記憶體的空間和釋放空間,而new和delete除了上述功能,還會呼叫建構函式和解構函式,以完成物件的初始化和回收記憶體。
所以呢~
- new在分配記憶體時,要用相對應的delete來釋放;
- malloc則是要用free來釋放
- 最重要的是,delete釋放的時候會呼叫物件的解構函式,而free不會!