温馨提示×

C++中如何释放已分配的内存

c++
小樊
154
2024-08-30 00:27:00
栏目: 编程语言
C++开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C++中,动态分配的内存需要手动释放

  1. 使用delete释放单个对象:
int* ptr = new int; // 分配内存
// ... 使用ptr做一些操作
delete ptr;         // 释放内存
  1. 使用delete[]释放对象数组:
int* arr = new int[10]; // 分配内存
// ... 使用arr做一些操作
delete[] arr;           // 释放内存
  1. 使用智能指针(推荐):

智能指针会在离开作用域时自动释放内存,无需手动操作。

#include<memory>

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

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

delete ptr;
ptr = nullptr;

或者,使用智能指针时,不需要手动置空。

std::unique_ptr<int> ptr(new int);
// ... 使用ptr做一些操作
ptr.reset(); // 释放内存并置空

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:如何正确释放C++中使用new分配的内存

0