C++:27---new delete malloc free
生活随笔
收集整理的這篇文章主要介紹了
C++:27---new delete malloc free
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
上一節(jié)我講了new和delete,有人問這不是和C語言的malloc/free為C的標準庫函數(shù)差不多么
void* malloc(size_t size)//參數(shù)代表字節(jié)個數(shù) void free(void* pointer)//參數(shù)代表內存地址new、delete則為C++的操作運算符,它調用的分別為賦值運算符重載operator new()和operator delete();
實際上我在上一節(jié)已經(jīng)講了,一個是庫函數(shù),一個是運算符,怎么可能相同呢。那我們這節(jié)就說一下他倆的區(qū)別。
1.在使用上,malloc/free如下:
void func(){//開辟一個空間int* p1=(int*)malloc(sizeof(int));if(p1==NULL){exit(1);}free(p1);//開辟多個空間int*p2=(int*)malloc(sizeof(int)*4);if(p2==NULL){exit(1);}free(p2);}用malloc分別開辟了1個和4個整型大小的空間和并free釋放它們;
new/delete如下:
void func(){//開辟一個空間int* p1=new int(1);delete p1;//開辟多個空間int*p2=new int[4];delete []p2;}由此可知:
(1)malloc開辟空間類型大小需手動計算
總結
以上是生活随笔為你收集整理的C++:27---new delete malloc free的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序以及论文
- 下一篇: C++: 06---构造函数析构函数