📅  最后修改于: 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
关键字。
使用 delete
和 delete[]
关键字可以释放堆上分配的单个变量和数组。要记住使用 delete[]
来释放分配的动态数组,以避免内存泄漏。