📅  最后修改于: 2023-12-03 14:50:19.529000             🧑  作者: Mango
在 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;
}
以上就是删除指针数组的完整示例,希望对你有所帮助。