malloc和new在C 中的主要差異在於:malloc分配的記憶體需手動釋放,而new分配的記憶體會自動釋放。 malloc分配失敗回傳NULL,new分配失敗拋出例外。 new自動初始化分配的內存,malloc分配的記憶體需要手動初始化。 new支援高級特性,如陣列分配、自訂分配器等,malloc不支援。
malloc和new在C 的區別
malloc和new都是C 中常用的記憶體分配函數,但它們之間存在一些關鍵的差異。
1. 語法
<code class="cpp">void *malloc(size_t size); void *new(size_t size, std::nothrow_t = nullptr);</code>
2. 傳回值
std::bad_alloc
異常。 3. 記憶體管理
free
釋放。 4. 初始化
5. 異常處理
std::bad_alloc
例外,可以用來進行例外處理。 6. 進階特性
總結
總的來說,malloc和new都是記憶體分配函數,但new更安全、易用,可以自動初始化、異常處理。對於簡單的記憶體分配場景,可以使用malloc,但對於需要更多特性的複雜場景,則建議使用new。
以上是c++中malloc和new的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!