
?
以下是malloc()和new運算子之間的區別:
1、呼叫建構式:新呼叫建構式,而malloc()則不,實際上,原始資料型別(char,int,float等)也可以使用new進行初始化,例如,在下面的程式中列印10,
#include<iostream>
using namespace std;
int main()
{
int *n = new int(10);
cout << *n;
getchar();
return 0;
}
2.運算子與函式: new是運算子,而malloc()是函式,
3.回傳型別: new回傳確切的資料型別,而malloc()回傳void *,
4.失敗條件:失敗時,malloc()回傳NULL,其中new拋出bad_alloc例外,
5.記憶體:如果是新的,則從空閑存盤區中分配記憶體,就像在malloc()中那樣,從堆中分配記憶體,
6.大小:所需的記憶體大小是由編譯器為new計算的,因為我們必須手動計算malloc()的大小,
7.緩沖區大小: malloc()允許使用realloc()更改緩沖區的大小,而new則不允許

?
每天學點小知識,希望對你有幫助~
另外如果你想更好的提升你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~
C語言C++編程學習交流圈子【點擊進入】微信公眾號:C語言編程學習基地
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/272759.html
標籤:其他
