如何正确释放C++中使用new分配的内存

   2024-09-30 7620
核心提示:在C++中,使用new关键字分配的内存需要手动释放对于单个变量:int* ptr = new int; // 分配内存// ... 使用ptr做一些操作 ...del

在C++中,使用new关键字分配的内存需要手动释放

对于单个变量:
int* ptr = new int; // 分配内存// ... 使用ptr做一些操作 ...delete ptr; // 释放内存
对于数组:
int* arr = new int[10]; // 分配内存// ... 使用arr做一些操作 ...delete[] arr; // 释放内存
对于自定义类或结构体:
class MyClass {    // ... 类的定义 ...};MyClass* obj = new MyClass; // 分配内存// ... 使用obj做一些操作 ...delete obj; // 释放内存
对于智能指针(推荐):

智能指针会在离开作用域时自动释放内存,这样可以防止内存泄漏。

#include <memory>std::unique_ptr<int> ptr(new int); // 分配内存// ... 使用ptr做一些操作 ...// 不需要手动释放内存,当ptr离开作用域时会自动释放

请注意,在释放内存后,务必将指针设置为nullptr,以避免悬空指针(dangling pointer)问题。

int* ptr = new int;delete ptr;ptr = nullptr; // 避免悬空指针

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号