在C++中,delete
關鍵字用于釋放動態分配的內存
if (ptr != nullptr) {
delete ptr;
ptr = nullptr; // 將指針設置為nullptr,避免懸掛指針
}
nullptr
,以避免懸掛指針。懸掛指針是指向已釋放內存的指針,訪問它們可能導致未定義行為。delete ptr;
ptr = nullptr;
std::unique_ptr
和std::shared_ptr
,它們可以自動管理內存。當智能指針離開作用域時,它們會自動刪除所指向的對象,從而避免內存泄漏。#include<memory>
std::unique_ptr<int> ptr(new int);
// 或者使用C++14的std::make_unique
// std::unique_ptr<int> ptr = std::make_unique<int>();
// 無需手動刪除,當ptr離開作用域時,它會自動刪除所指向的對象
nullptr
。遵循這些建議,你可以在C++中安全地使用delete
關鍵字。