C/C++編程筆記:malloc和new運(yùn)算符的區(qū)別

以下是malloc()和new運(yùn)算符之間的區(qū)別:?
1、調(diào)用構(gòu)造函數(shù):新調(diào)用構(gòu)造函數(shù),而malloc()則不。實際上,原始數(shù)據(jù)類型(char,int,float等)也可以使用new進(jìn)行初始化。例如,在下面的程序中打印10。
#include<iostream>
using namespace std;
int main()
{
int *n = new int(10);
cout << *n;
getchar();
return 0;
}
2.運(yùn)算符與函數(shù):?new是運(yùn)算符,而malloc()是函數(shù)。
3.返回類型:?new返回確切的數(shù)據(jù)類型,而malloc()返回void *。
4.失敗條件:失敗時,malloc()返回NULL,其中new拋出bad_alloc異常。
5.內(nèi)存:如果是新的,則從空閑存儲區(qū)中分配內(nèi)存,就像在malloc()中那樣,從堆中分配內(nèi)存。
6.大小:所需的內(nèi)存大小是由編譯器為new計算的,因為我們必須手動計算malloc()的大小。
7.緩沖區(qū)大小:?malloc()允許使用realloc()更改緩沖區(qū)的大小,而new則不允許

每天學(xué)點小知識,希望對你有幫助~
另外如果你想更好的提升你的編程能力,學(xué)好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~
微信公眾號:C語言編程學(xué)習(xí)基地
分享(源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!