📜  删除指针数组 - C++ (1)

📅  最后修改于: 2023-12-03 14:50:19.529000             🧑  作者: Mango

删除指针数组 - C++

在 C++ 中我们可以使用指针数组来存储一组指针,但使用完毕后需要手动释放内存。本文将介绍如何删除指针数组。

数组的声明和初始化

我们可以使用以下形式来声明和初始化指针数组:

int* arr[5];
for(int i = 0; i < 5; i++){
    arr[i] = new int(i+1);
}

上述代码定义了一个包含 5 个指向 int 类型的指针的数组,使用 for 循环通过 new 关键字动态分配内存,并对每个元素进行初始化。

删除数组元素的内存

使用完指针数组中的元素,我们需要手动释放其占用的内存。以下是删除数组元素内存的示例:

for(int i = 0; i < 5; i++){
    delete arr[i];
    arr[i] = nullptr; // 将指针置为空,避免野指针
}
删除指针数组本身的内存

在删除数组元素的内存后,我们还需要手动释放数组本身占用的内存。以下是删除指针数组本身内存的示例:

for(int i = 0; i < 5; i++){
    delete arr[i];
    arr[i] = nullptr; // 将指针置为空,避免野指针
}
delete[] arr;
arr = nullptr; // 将指针置为空,避免野指针
完整代码
#include <iostream>

int main(){
    int* arr[5];
    for(int i = 0; i < 5; i++){
        arr[i] = new int(i+1);
    }
    std::cout << "数组元素的值为:";
    for(int i = 0; i < 5; i++){
        std::cout << *arr[i] << " ";
    }
    std::cout << std::endl;

    // 删除数组元素的内存
    for(int i = 0; i < 5; i++){
        delete arr[i];
        arr[i] = nullptr; // 将指针置为空,避免野指针
    }

    // 删除指针数组本身的内存
    delete[] arr;
    arr = nullptr; // 将指针置为空,避免野指针

    return 0;
}

以上就是删除指针数组的完整示例,希望对你有所帮助。