在C++中,delete
關鍵字主要用于釋放動態分配的內存。這些動態分配的內存通常是通過new
關鍵字分配的。以下是delete
關鍵字的一些常見使用場景:
new
關鍵字創建一個動態對象時,可以使用delete
關鍵字來釋放該對象占用的內存。例如:int* p = new int;
// ... 使用p指向的內存
delete p; // 釋放內存
new
關鍵字創建一個動態數組時,可以使用delete[]
關鍵字(注意[]
)來釋放整個數組占用的內存。例如:int* arr = new int[10];
// ... 使用arr指向的內存
delete[] arr; // 釋放內存
new
關鍵字創建一個自定義類型的對象時,可以使用delete
關鍵字來釋放該對象占用的內存。例如:class MyClass {
// ...
};
MyClass* obj = new MyClass;
// ... 使用obj指向的內存
delete obj; // 釋放內存
new
關鍵字創建一個自定義類型的數組時,可以使用delete[]
關鍵字來釋放整個數組占用的內存。例如:class MyClass {
// ...
};
MyClass* arr = new MyClass[10];
// ... 使用arr指向的內存
delete[] arr; // 釋放內存
需要注意的是,在使用delete
或delete[]
釋放內存后,應確保不再使用已釋放的內存,因為這可能導致未定義行為。此外,delete
和delete[]
只能用于釋放通過new
和new[]
分配的內存,而不能用于釋放其他類型的內存。