注册 登录
编程论坛 C++教室

下列结构应该如何使用delete删除

wsw771006 发布于 2011-10-28 22:49, 647 次点击
int **p;
int *buffer;
p=new int *[m];
for(int i=0;i<m;i++)
{
    buffer = new int[n];
    p[i]=buffer;
}

应该如何使用delete语句来回收内存,我写的如下,但觉得不对:
    for(int i = 0; i < m; i++)
    {
         delete p[i];
    }
     delete p;
4 回复
#2
鑫乐源2011-10-28 23:04
delete [] p;
#3
wsw7710062011-10-28 23:10
循环中的删除对吗?我觉得好像有问题:
int **p;
int *buffer;
p=new int *[m];
for(int i=0;i<m;i++)
{
    buffer = new int[n];
    p[i]=buffer;
}

应该如何使用delete语句来回收内存,我写的如下,但觉得不对:
    for(int i = 0; i < m; i++)
    {
         delete p[i];
    }
     delete []p;

[ 本帖最后由 wsw771006 于 2011-10-29 10:37 编辑 ]
#4
wsw7710062011-11-06 21:06
查了资料,循环中应该用delete []p[i];
#5
hxcet2011-11-24 12:16
应该是
程序代码:
for(int i = 0; i < m; i++)
    {
         delete [] p[i];
    }
     delete [] p;

1