在 C++ 中,您需要釋放分配的記憶體以避免記憶體洩漏。釋放記憶體的關鍵時機包括:作用域結束時(自動釋放)。使用智慧指針(自動釋放)。明確釋放(使用 delete 或 delete[])。
在 C++ 中何時釋放分配的記憶體?
在 C++ 中,您負責釋放分配的記憶體。未能釋放記憶體會導致記憶體洩漏,這會降低應用程式的效能並最終導致崩潰。以下是決定何時釋放記憶體的幾個關鍵規則:
1. 作用域結束時:
{ int* ptr = new int; // ... } // ptr wird hier automatisch freigegeben
2. 使用智慧指標:
std::unique_ptr
和std::shared_ptr
)會自動在物件超出作用域或指標不再需要時釋放記憶體。 std::unique_ptr<int> ptr = std::make_unique<int>(); // ...
3. 明確釋放:
delete
或delete[]
運算子明確釋放記憶體。 int* ptr = new int; // ... delete ptr;
實戰案例:
考慮以下分配動態數組的範例:
int* ptr = new int[10];
在這個在範例中,ptr
指向一個分配了10 個整數的陣列。在完成對數組的使用後,必須釋放該數組。可以採用以下方式:
delete[] ptr; // 显式释放数组
或使用智慧指標:
std::unique_ptr<int[]> ptr(new int[10]); // 使用智能指针自动释放数组
以上是在 C++ 中何時釋放分配的記憶體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!