delete 结构体类型数组
大家都知道,要删除一个数组,指针名前只用一对方括号符,并且不管所删除数组的维数,忽略方括号内的任何数字。
如:
int *p;
p = new int[10];
delete[] p;
如果要删除一个结构体指针
typedef struct tagrelaNote
{//邻域关系节点类型
int id;/
int edgeLength;
}relaNote,*lprelaNote;
ralaNote seg=new ralaNote;
直接delete seg;seg=null;就可以了;
但是如果我要删除一个包含结构体指针数组该怎么办呢?下面是我定义的结构体和结构体指针
typedef struct tagrelaNote
{//邻域关系节点类型
int id;
int edgeLength;
}relaNote,*lprelaNote;
typedef struct tagneiSegs
{//所含邻域类型
int neiNum;//所含邻域个数
int segId;
int merFlag;
relaNote* relanote;//包含的邻域关系节点
}neiSegs, *lpneiSegs;
neiSegs* allneiSeg = new neiSegs[10];
下面我为数组中每个成员的ralaNote都分别开辟空间并分别赋值用于计算;请各位高手帮忙,我用完了这个数组allneiSeg,我该怎么释放它?
delete[] allneiSeg;应该释放不干净吧?
因为我下面出现堆栈溢出的问题,觉得可能是哪里空间没释放彻底,谢谢大家:)