在C++中,delete
關鍵字用于釋放動態分配的內存
使用new
關鍵字分配內存:
在使用delete
之前,需要使用new
關鍵字為變量分配內存。new
會返回一個指向分配內存的指針。
示例:
int* numPtr = new int;
使用delete
釋放內存:
當不再需要動態分配的內存時,可以使用delete
關鍵字釋放內存。delete
的語法是在要釋放的指針前加上delete
關鍵字。
示例:
delete numPtr;
將指針設置為nullptr
:
在釋放內存后,將指針設置為nullptr
是一個好習慣。這樣可以避免懸空指針(dangling pointer)問題,即指針指向已經釋放的內存。
示例:
numPtr = nullptr;
注意delete
和delete[]
的區別:
delete
用于刪除單個對象。delete[]
用于刪除對象數組。示例:
int* arr = new int[5]; // 分配內存
delete[] arr; // 釋放內存
避免重復釋放內存:
不要多次使用delete
釋放同一塊內存,因為這會導致未定義行為。確保每塊內存只被釋放一次。
避免在釋放內存后使用指針:
在釋放內存后,不要再使用該內存塊,因為這會導致未定義行為。在釋放內存后,將指針設置為nullptr
是一個好習慣。
遵循以上規則,你就可以正確地使用C++中的delete
關鍵字來釋放動態分配的內存。