面試中關於 new 和 malloc 的區別

同事的面試題,仔細瞅了下。 發現這個問題突然回答不上來。 確實有點生疏,所以做了下面的小結:

  1. malloc 和 free 都是函數。 new 和 delete 是C++ 的運算符!
  2. malloc 用 分配內存不會自動調用構造函數, new 就會。
  3. malloc 分配的空間的大小必須指定, new會自動分配
  4. malloc 和 new 分配的內存都在上面。
  5. malloc 分配空間失敗會返回 空指針NULL 而 new 分配失敗了會拋出std::bad_alloc異常。

不管是new 或者 malloc 分配的空間之後, 都應該記得釋放分配的內存。 因爲系統不會自動釋放你申請的空間, 空間在上面。

簡單的小結,便於以後查找。

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