关于delete的用法...

#include<iostream.h>voidmain(){int*p;p=newint;*p=5;cout<<*p<<endl;deletep;cout<<*p<<e... #include <iostream.h>

void main()
{
int *p;
p = new int;
*p = 5;
cout << *p << endl;
delete p;
cout << *p <<endl;
}

这个用法有什么不妥吗?
再输出*p,结果是个大数,没报错。
展开
 我来答
清子April
2015-11-19 · 知道合伙人教育行家
清子April
知道合伙人教育行家
采纳数:1322 获赞数:4192
毕业于佳木斯大学,工程制药专业,个人业余热爱教育文学类相关知识,希望通过行家平台帮助别人,丰富自己。

向TA提问 私信TA
展开全部
delete [dɪ'lit]

vt. 删除
用法如下:
1)delete +宾语 : 把....删除
例句1:
The attack is to wipe out data, to delete flies, or to format the hard disk.
常见的攻击方式是消除数据、删除文件或者格式化硬盘。
例句2:
As you can see below, you can modify, delete and add tags.
如你下面看到的,你可以修改、编辑、删除和添加标签。
2)delete...from.. : 把...从。。中删除
例句1:
Please delete his name from boss's list.
请把他的名字从老板的名单上删除
例句2:
She want to delete that memory from her life.
她想把那段记忆从她的人生中删除。
幸巴达
2008-12-29 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2476万
展开全部
delete p;
cout << *p <<endl;
这里你已经delete p了, 也就是p所指向的内存已经被释放, 当再次访问p时很容易发生错误.

一般来是, delete p以后立即再次访问p不会出现问题, 因为此时p所指向的内存暂时没有被其他程序或线程利用.此时p俗称为野指针, 野指针的指向是不定的,在程序中相当危险, 很容易造成系统崩溃.

delete p;
int *pInt = new int;
cout<<*p<<endl;
这时就很危险了.

建议delete p以后立即p=null, 防止野指针出现.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lqbest127
2008-12-29 · TA获得超过122个赞
知道答主
回答量:182
采纳率:0%
帮助的人:148万
展开全部
new出来的东西一定要delete,在delete以后就是个无效地址,所以输出的时候无法估计的数值。如果去往这个地址写入内容基本都会报内存错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cqitlxl
2008-12-28 · 超过22用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:0
展开全部
有 !
你 已经delete了给 p分配的空间,在输出它的内容会出错!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式