您好,登錄后才能下訂單哦!
在軟件開發中過程中,常常需要動態地分配和撤銷內存空間,例如對動態鏈表中結點的插入與刪除。
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[ ]指針變量;
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;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。