📅  最后修改于: 2023-12-03 15:37:18.744000             🧑  作者: Mango
在 C++ 中,当我们使用 new 关键字动态分配数组内存时,我们也需要使用 delete[] 关键字来释放已分配的内存。下面是释放数组内存的几种方法。
我们可以使用 delete[] 关键字来释放已分配的内存,例如:
// 分配包含5个整数的数组内存
int* arr = new int[5];
// 使用数组
// ...
// 释放内存
delete[] arr;
这个代码片段展示了在创建包含5个整数的动态数组时,如何使用 delete[] 释放该数组。
要避免由于程序员错误而造成的内存泄漏和悬空指针,我们可以把内存的管理委派给一个智能指针。以下是包含5个整数的数组封装在 std::unique_ptr 中的示例:
#include <memory>
std::unique_ptr<int[]> arr(new int[5]);
这个示例将数组 arr 封装在 std::unique_ptr 中,它会在其超出作用域时自动释放内存。
在 C++ 中,std::vector 是一个非常有用的类,它用于在运行时管理可变大小的数组。它还提供了许多方便的方法来访问和修改数组。
以下是使用 std::vector 来分配和释放包含5个整数的数组的示例:
#include <vector>
std::vector<int> arr(5);
// 使用数组
// ...
// 不需要手动释放内存
这个示例展示了如何在运行时使用 std::vector 分配和管理包含5个整数的数组,而不必担心手动释放内存。
以上是在 C++ 中释放数组内存的三种方法。可能你会发现,在使用智能指针或std::vector时更容易避免内存泄漏和悬空指针的问题。