Malloc/Free VS. New/Delete的差異

Newone Tsai
Mar 31, 2021

--

http://beyondthegeek.com/2016/10/03/malloc-and-free/

我知道你很趕。先說結論:

malloc和free原本用於C語言,但也可以用在C++

new和delete僅限用於C++語言

差別在於有沒有進到建構函式(Constructor)以及解構函式

Meme

malloc和free只是動態分配記憶體的空間和釋放空間,而new和delete除了上述功能,還會呼叫建構函式解構函式,以完成物件的初始化和回收記憶體。

https://stackoverflow.com/questions/240212/what-is-the-difference-between-new-delete-and-malloc-free

所以呢~

  • new在分配記憶體時,要用相對應的delete來釋放;
  • malloc則是要用free來釋放
  • 最重要的是,delete釋放的時候會呼叫物件的解構函式,而free不會!

--

--

Newone Tsai
Newone Tsai

Written by Newone Tsai

I took the one less traveled by, and that has made all the difference.

No responses yet