80,337
社区成员
发帖
与我相关
我的任务
分享
delete 指针的指针(或者指针数组)
这几天碰到程序中内存被不断吞噬的问题,怎么找都没发现,后来经一个一个排除,抓出了这个内鬼,释放指针的指针的空间时,只释放了一次,以下是一个例子,说明如何解决这个问题。以指针的指针为例,指针数组的原理也一样。
假设:char **p=new char *[total*pa*sizeof(char)];
for(int i=0,i<total;i++)
{
p[i]=new int[pa];
}
.........................................以上定义了一个指针的指针p,并为他分配了空间。下面进行空间的释放。
for(int i=0,i<total;i++)
{
delete []p[i];
}
delete []p;
p=NULL;
.....................................到此分配的空间完全被吐了出来(小样,看你下次还敢吃我内存)
一定要记住,对于指针的指针这类空间的释放问题,不是一次释放就可以的,要与分配时相对应。呵呵,就到这了。