如何删除这种二维数组?

How to delete such kind of two dimension array?

本文关键字:二维数组 删除 何删除      更新时间:2023-10-16
#define NB -3
#define NM -2
#define NS -1
#define ZO 0
#define PS 1
#define PM 2
#define PB 3

int (*rule)[7] =new int[7][7]{{NB,NB,NM,NM,NS,ZO,ZO},
{NB,NB,NM,NS,NS,ZO,PS},
{NM,NM,NM,NS,ZO,PS,PS},
{NM,NM,NS,ZO,PS,PM,PM},
{NS,NS,ZO,PS,PS,PM,PM},
{NS,ZO,PS,PM,PM,PM,PB},
{ZO,ZO,PM,PM,PM,PB,PB}};

我应该使用以下方法吗?

for(int i=0;i<7;++i)
{
delete[] rule++;
}

或者如果我使用delete[] rule,这似乎很奇怪,因为底层对象是一个 arrrays 数组,而不是指针数组,这是rule的类型。

rule

是指向键入int[7]的指针数组。

前者以new[]宣布.

因此,您需要使用delete[] rule;来释放内存。