在C++编程中,使用new分配的数组可用delete释放。不过,和动态创建的一维数盲褓梆尺组相比,动态创建的二维数组空间的释放却略有不同,也更容易出错。
一、释放动态创建的一维数组空间
1、例如,我们动态创建了一个一维 int 数组 arr,现在需要将它释放。
2、这时只需要使用 delete[ ] 数组名 即可。
3、注意,要释放数组所占的内存,[ ]不能少。否则, 用 delete 则不能完全释放数组所占内存空间。
二、释放动态创建的二维数组空间
1、例如,我们为一个二维数组 arr 动态分配了内存空间。现在需要将它释放。
2、这时候,单单使用一句 delete[ ] arr 是不够的。
3、而是应该先释放为二维数组的每行分配的空间(即 delete[ ] arr[i]),再释放为行指针分配的空间(即 delete[ ] arr)。
4、经过这样两步,动态分配的二维数组空间才算彻底地释放。至于多维数组的释放,其本质和二维数组是相似的,可以参考二维数组的方法。下图为编译运行截图。可以看到,顺利执行,没有非法的内存访问,也没有报错。