| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 330 人关注过本帖
标题:释放空间
收藏  订阅  推荐  打印 
vfdff
Rank: 6Rank: 6
等级:金牌会员
威望:6
帖子:1342
积分:14898
注册:2005-7-15
释放空间

int main()
{
    int a[][2]={{1,2},{3,4}};
    int **p ,i;
    p=new int * [2];
    for(i=0;i<2;i++)
    {
        p[i]=new int [2];
        p[i]=&a[i][0];
    }
    delete[] p[0];
    delete[] p[1];
    delete[] p;
    return 0;
}
上述代码中使用     p=new int * [2];
    for(i=0;i<2;i++)
    {
        p[i]=new int [2];
        p[i]=&a[i][0];
    }
申请得到一个 二维数组之后
为什么不能使用
    delete[] p[0];
    delete[] p[1];
    delete[] p;依次将申请到的内存空间释放呢 ??
运行时提示错误(附件)
附件: 只有本站会员才能下载或查看附件,请您 登录注册
搜索更多相关主题的帖子: assertion  二维数组  空间  delete  
2008-10-9 00:25
forever74
Rank: 4
等级:高级会员
威望:5
帖子:614
积分:7253
注册:2007-12-27

for里面两次给p[i]赋值,那么第二次就覆盖了第一次的,所以把new出来的空间弄丢了
2008-10-9 00:49
vfdff
Rank: 6Rank: 6
等级:金牌会员
威望:6
帖子:1342
积分:14898
注册:2005-7-15
回复 2# forever74 的帖子

第一次 new 的是   p[0]=new int [2];
第二次 new 的是   p[1]=new int [2];
怎么会覆盖呢 ??

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-9 00:50
forever74
Rank: 4
等级:高级会员
威望:5
帖子:614
积分:7253
注册:2007-12-27

不是两次new的,是循环体执行一次的两个赋值
p[0]第一次new了,接着
p[0]=&a[0][0]了
2008-10-9 01:06
StarWing83
Rank: 12Rank: 12Rank: 12
来自:湖北工业大学
等级:贵宾
威望:12
帖子:2501
积分:26440
注册:2007-11-16

- -刚刚移动了一个帖子去C++板块,怎么还有一个……算了,先放一个晚上吧……看上去大家不是很在意……

LZ,我在你的上一个帖子留了答案,有问题可以直接PM问我。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-9 01:07
smltq
Rank: 3Rank: 3
等级:中级会员
威望:4
帖子:351
积分:4273
注册:2008-1-21

我也想知道。。。

32463958 C/C++/C#交流群。
2008-10-9 07:31
vfdff
Rank: 6Rank: 6
等级:金牌会员
威望:6
帖子:1342
积分:14898
注册:2005-7-15
http://bbs.bccn.net/thread-237131-1-1.html 7#

不管是什么,你一个new肯定只需要写一个delete:
int (*arr)[10] = new int[20][10];
//use it...
delete []arr;
或者:
int **arr2 = new int*[20];
for (int i = 0; i < 20; ++i) arr2[i] = new int[10];
//use it...
for (int i = 0; i < 20; ++i) delete arr2[i];
delete arr2;

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-15 00:47
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.069133 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved