在C++中,new和delete是用來動態分配和釋放內存的操作符。
int* p = new int; // 分配一個int類型的內存空間,并將其地址賦給指針p
在這個例子中,new操作符會在堆上分配一塊int類型大小的內存空間,并返回這塊內存的地址。然后,將這個地址賦給指針p,使其指向這塊內存空間。
如果需要動態分配一個數組,可以使用以下語法:
int* arr = new int[10]; // 分配一個包含10個int元素的數組
delete p; // 釋放指針p所指向的內存空間
在這個例子中,delete操作符會釋放指針p所指向的內存空間,并回收這塊內存。
如果是釋放動態分配的數組,需要使用delete[]操作符:
delete[] arr; // 釋放動態分配的數組arr所占用的內存空間
需要注意的是,使用new操作符分配的內存必須使用相應的delete操作符進行釋放,否則會導致內存泄漏。同時,delete操作符只能釋放使用new操作符分配的內存,不能釋放靜態分配的內存或者棧上的內存。