C++運算符new、delete
阿新 • • 發佈:2018-05-12
C++在軟件開發中過程中,常常需要動態地分配和撤銷內存空間,例如對動態鏈表中結點的插入與刪除。
delete運算符使用的一般格式為
delete[ ]指針變量;
new int; //開辟一個存放整數的存儲空間,返回一個指向該存儲空間的地址(即指針)。
new int(100); //指定該整數的初值為100
new char[10]; //包含10個字符的空間
new int[5][4]; //二維數組(5*4)
float *p=new float(3.14159); //地址賦給指針變量p
new 運算符使用的一般格式為
new 類型[初值];//用new分配數組空間時不能指定初值。如果由於內存不足等原因而無法正常分配空間,則new會返回一個空指針NULL,用戶可以根據該指針的值判斷分配空間是否成功。
delete[ ]指針變量;
delete p;
delete [ ]pt; //在指針變量面前加一對方括號,表示對數組空間的操作。
對象的動態建立和釋放
定義的對象是靜態的話,在程序運行過程中,對象所占的空間是不能隨時釋放的。例如在一個函數定義了一個對象,只有在該函數結束時,該對象才釋放。但有時人們希望在需要用到對象時才建立對象,在不需要用該對象時就撤銷它,釋放它所占的內存空間以供別的數據使用。這樣可以提高內存空間的利用率。
class Box{ private: int height; int width; int length; public: Box(); Box(int,int,int); ~Box(); Box(Box &b); void volume(); }; new Box; //動態建立一個對象 Box *pt; //定義一個指向Box對象的指針變量pt pt=new Box; //在pt中存放了新建對象的起始地址 pt-->height; //調用對象的height成員 pt-->volume(); //調用對象的volume函數 Box *pt=new Box(12,15,18); //釋放內存空間 delete pt;
C++運算符new、delete