| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1013 人关注过本帖
标题:请教一个关于delete的用法的错误
只看楼主 加入收藏
skyme
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-2-28
收藏
 问题点数:0 回复次数:7 
请教一个关于delete的用法的错误

char *depart = “Computer Science”;

char *univ = “University”;


strcpy(depart, univ);

cout << “Department of ” << univ << endl;


delete depart;


delete univ;



是没有语法错误 但是好像不是正确的阿 还有这个〉。。

const int len = 80;

char *errorMsg = new char[len + 1];

char *promptMsg = new char[len + 1];

strcpy(errorMsg, “Character pointer error.\n”);


promptMsg = errorMsg;


cout << promptMsg << endl;


delete promptMsg;


delete errorMsg;

[此贴子已经被作者于2006-3-5 16:50:55编辑过]

搜索更多相关主题的帖子: delete Roman 用法 
2006-03-05 16:44
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
第一段程序的两个指针都不能被delete,因为不是new出来的。

第二段程序经过“promptMsg = errorMsg;”之后promptMsg本来的81个memory就都漏掉了。这段程序的运行结果应该是Crash.

“promptMsg = errorMsg;" 应改成 strcpy(promptMsg, errorMsg)。

http://myajax95./
2006-03-05 17:53
skyme
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-2-28
收藏
得分:0 
很感谢你啊  呵呵

2006-03-05 17:53
guodong661
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-2-15
收藏
得分:0 
new和delete必须成对出现

2006-03-09 02:54
GISboy
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-2-28
收藏
得分:0 


delete promptMsg;//关键这里,其实通过promptMsg = errorMsg;使promptMsg和errorMsg;都指向了同一块内存资源,当你此处删除了promptMsg所指向的内存资源,那么这块资源就不复存在了

delete errorMsg;//当再执行此语句时,就肯定会报错的!

另外你这还存在内存悬挂的问题,造成内存资源丢失


2006-03-09 12:46
p1s
Rank: 4
等 级:贵宾
威 望:10
帖 子:454
专家分:3
注 册:2005-11-4
收藏
得分:0 

应作
delete [] promptMsg;


delete [] errorMsg;

吧?这些是字符数组啊

2006-03-09 12:57
DarkHero
Rank: 1
等 级:新手上路
威 望:2
帖 子:191
专家分:0
注 册:2006-1-14
收藏
得分:0 

恩,强烈建议 new -delete 成对使用


for( ; me.alive() ; ) { 淡泊名利,志存高远 } //Forever
2006-03-09 20:38
wanglff
Rank: 2
等 级:新手上路
威 望:5
帖 子:375
专家分:0
注 册:2005-12-21
收藏
得分:0 
new -delete 不成对使用
就会出问题的
如果不懂的话
就看下动态分配空间的知识

自强不息:)
2006-03-09 20:45
快速回复:请教一个关于delete的用法的错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016878 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved