以下是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則不允許

每天學點小知識,希望對你有幫助~
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/225337.html
微信掃一掃
支付寶掃一掃