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