📜  删除堆数组 c - C++ (1)

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

删除堆数组

在编程中,堆数组是动态分配内存的一种常见方式。需要删除堆数组以释放内存并避免内存泄漏。下面介绍如何在 C++ 中删除堆数组。

删除单个变量

在 C++ 中,删除单个变量使用 delete 关键字,如下所示:

int* ptr = new int;
// some code here
delete ptr;

这段代码创建了一个 int 类型的指针,使用 new 运算符将其分配到堆上,并将地址分配给指针 ptr。执行一些代码后,可以使用 delete 关键字释放分配的内存。

但是,如果分配的是一个数组,需要使用 delete[] 关键字来释放堆数组,如下所示:

删除堆数组
int* arr = new int[10];
// some code here
delete[] arr;

这里使用了 new 运算符初始化一个包含 10 个 int 值的数组,并将地址赋值给指针 arr。当不再需要这个数组时,使用 delete[] 关键字释放内存。

需要注意的是,delete[] 只能用于使用 new[] 分配的动态数组,否则会导致未定义行为。如果要释放非分配的内存在堆上分配的数组,则需要使用 delete 关键字。

总结

使用 deletedelete[] 关键字可以释放堆上分配的单个变量和数组。要记住使用 delete[] 来释放分配的动态数组,以避免内存泄漏。