C 總結 C 的new和delete

2021-07-02 14:19:01 字數 949 閱讀 3376

當變數是指標的時候就需要使用在堆中開闢空間

記憶體分配

呼叫建構函式

int

*p = new int;

*p = 2;

cout << *p

2

也可以開闢的時候初始化

int

*p = new int(2);

cout << *p

《預設初始化

string *str = new

string();//初始化為空的字串

string *str = new sting;//預設初始化為空

int *pi = new

int();//初始化為0

int *pi = new

int;//不初始化

給陣列開闢空間

int *p = new

int[10];//等於p[10]

p[0] = 5;//p就是陣列的首位址

cout

<< p[0] 《物件開闢空間

person *person =new person();

物件在堆中開闢了內容空間,不用的時候需要把申請的空間釋放掉

delete p//釋放變數

delete p//釋放陣列

delete person//釋放物件

呼叫析構函式

釋放記憶體

delete p;

p = 0;

//const物件只能賦給const指標

const

int *p = new

int(1024);

//刪除const指標

delet p;

過載C 的new和delete

過載c c 標準庫的記憶體管理函式 比如malloc,free,operator new,operator delete,operator new,operator delete 時,編譯器會忽視重定義,所以不用擔心鏈結時會產生重定義錯誤。operator new,operator delete,o...

C 中的new與delete總結

標準庫提供的global operator new,在全域性名字空間中定義 void operator new std size t size 丟擲異常的版本 void operator new std size t size,const std nothrow t nothrow value no...

new和delete解析 c 筆記

1.new delete 和operator new operator delete和malloc free的關係 new,delete運算子 當我們使用一條new表示式時,實際上執行了三步操作 第一步,new表示式呼叫乙個名為operator new 或者operator new 的標準庫函式,該...