免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2199 | 回复: 7
打印 上一主题 下一主题

[C++] 被delete搞混了 ,请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-01 00:02 |只看该作者 |倒序浏览
NetExpr**parms_;
   if (parms_[idx])
            delete parms_[idx];


请问
1.这里delete是释放parms_[idx]指针所指的由new所分配的空间吧?
2.而那些未经new分配的空间应该还有效吧?

论坛徽章:
1
射手座
日期:2013-08-21 13:11:46
2 [报告]
发表于 2008-10-01 00:07 |只看该作者
没具体研究过。。。
delete释放单个空间
delete[]释放一个数组。。
delete parms_[idx]是释放parms_[idx]所指向的空间。
我的理解

论坛徽章:
0
3 [报告]
发表于 2008-10-01 00:52 |只看该作者
应该是:
delete [] parms_[idx];

论坛徽章:
0
4 [报告]
发表于 2008-10-01 01:48 |只看该作者
原帖由 scutan 于 2008-10-1 00:52 发表
应该是:
delete [] parms_;



不是吧
你就这么确定param_[idx]是new []出来的?

论坛徽章:
0
5 [报告]
发表于 2008-10-01 13:14 |只看该作者
1. 是的。不过C++ Standard要求对于空指针delete是空操作(不象库函数free,没有明确定义),所以这里实际上可以不用判断。
2. 没明白你这句话是什么意思。

论坛徽章:
0
6 [报告]
发表于 2008-10-01 15:40 |只看该作者
if (parms_[idx])??这句需要吗??

论坛徽章:
0
7 [报告]
发表于 2008-10-01 20:24 |只看该作者
原帖由 nhuczp 于 2008-10-1 15:40 发表
if (parms_)??这句需要吗??

对啊
内存空间是否被释放  由if (parms_[idx])这句能判断出来吗?

论坛徽章:
1
射手座
日期:2013-08-21 13:11:46
8 [报告]
发表于 2008-10-01 22:58 |只看该作者
我刚才翻出来一个老帖,你应该能用上:
http://bbs.chinaunix.net/viewthr ... p%3Bfilter%3Ddigest
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP