C 中new和malloc記憶體區問題

2021-08-20 01:38:20 字數 256 閱讀 1997

參考如下:

這裡有解釋

基本上來說,很多編譯器都是預設new是呼叫malloc來開闢記憶體的,那麼都是呼叫malloc來開闢乙個記憶體區的那麼問題來了。

這個時候到底是自由記憶體區還是堆記憶體?

自由記憶體區在c中是沒有的,在c++中才被提及的乙個抽象概念。

那麼在一般情況下不過載修改開闢方式或者說開闢記憶體的方向時候是不用分太細緻的。

使用new來開闢記憶體的說是自由記憶體區沒錯,說是堆也沒錯。。區別就在於語言本身背景不同了

malloc函式 new和malloc的區別

1 申請的記憶體所在位置 new操作符從自由儲存區上為物件動態分配記憶體空間,而malloc函式從堆上動態分配記憶體。自由儲存區是c 基於new操作符的乙個抽象概念,凡是通過new操作符進行記憶體申請,該記憶體即為自由儲存區。而堆是作業系統中的術語,是作業系統所維護的一塊特殊記憶體,用於程式的記憶體...

C中的malloc和C 中的new有什麼區別?

1 new,delete是操作符,只能在c 中使用 2 malloc,free是函式,可以覆蓋,c,c 中都可以使用 3 new可以呼叫物件的建構函式,對應的delete呼叫相應的析構函式 4 malloc僅僅分配記憶體,free僅僅 記憶體,並不執行構造和析構函式 5 malloc free需要手...

C 記憶體分配new和malloc的區別

這裡有一篇講的很詳細new和malloc的區別 總結一下 1.new delete是操作符,malloc free是函式 2.malloc分配記憶體需指定大小,且只能是一般資料型別,分配成功返回void 需要強制型別轉換,分配失敗返回null,需手動檢查是否分配成功 new分配記憶體無需指定大小,可...