在 C++ 中,delete
用于釋放由 new
動態分配的內存。它接受一個指針作為參數,并釋放該指針指向的內存。
// 動態分配內存
int* ptr = new int;
// 使用內存
// 釋放內存
delete ptr;
在使用 delete
之前,必須先使用 new
進行內存的動態分配。delete
會調用對象的析構函數來清理對象的資源,并釋放內存空間。
如果動態分配的內存是一個數組,應使用 delete[]
來釋放內存,而不是使用 delete
。
// 動態分配數組
int* arr = new int[5];
// 使用數組
// 釋放數組內存
delete[] arr;
需要注意的是,使用 delete
或 delete[]
釋放內存后,指針將成為懸空指針,使用該指針將導致未定義的行為。為了避免懸空指針的出現,可以將指針設置為 nullptr
。
int* ptr = new int;
// 使用內存
delete ptr;
// 將指針設置為 nullptr
ptr = nullptr;