📜  删除动态数组c++(1)

📅  最后修改于: 2023-12-03 15:07:14.713000             🧑  作者: Mango

删除动态数组C++

动态数组在 C++ 中是一种非常常用的数据结构,动态数组可以根据需要自动扩展或缩小数组的大小。删除数组通常用于释放内存并防止内存泄漏。本文将介绍如何在 C++ 中删除动态数组。

创建动态数组

首先,让我们看看如何创建一个动态数组。以下代码显示了如何创建并初始化一个包含 5 个元素的动态整数数组。

int* dynamicArray = new int[5];
 
for (int i = 0; i < 5; i++) {
    dynamicArray[i] = i;
}
删除动态数组

当我们完成使用动态数组时,应该将其删除以释放内存。可以使用 delete 关键字删除动态数组。以下是删除动态数组的代码片段。

delete[] dynamicArray;

然而,在删除动态数组之前,我们应该确保我们没有使用该数组的指针。否则,将会出现程序崩溃和内存泄漏的风险。

避免内存泄漏

内存泄漏通常是由于忘记释放动态内存而导致的。在 C++ 中,可以使用智能指针,如 std::unique_ptr 或 std::shared_ptr 来避免内存泄漏。这些智能指针类提供自动内存管理,从而避免了手动内存释放。

以下是使用 std::unique_ptr 来创建及删除动态数组的示例代码:

std::unique_ptr<int[]> dynamicArray(new int[5]);
 
for (int i = 0; i < 5; i++) {
    dynamicArray[i] = i;
}
 
// 删除动态数组
dynamicArray.reset();
总结

本文介绍了如何创建和删除动态数组以及如何避免内存泄漏。在删除动态数组之前,必须确保没有使用该数组的指针。在 C++ 中,使用智能指针可以避免由于忘记释放动态内存而导致的内存泄漏。