TanZek's 技术空间

勇往直前,专注于技术...

首页 新随笔 联系 聚合 管理
  7 Posts :: 19 Stories :: 13 Comments :: 0 Trackbacks
问题的提出:
         针对C++的delete运算符的用法,运行下例程序段:

int e=3;
int *p= new int(e);
cout
<<p<<" "<<*p<<endl;
delete p;
cout
<<p<<" "<<*p<<endl;
p
=&e;
cout
<<p<<" "<<*p<<endl;

Output:
0x4a2480 3
0x4a2480 0
0x22ff74 3

为何p在释放后还有其地址存在,且其指向变为初始值?
用char型变量测试,如同,只是改成了初始值""
对于后面的p=&e,为何能够继续运行?

对于内存变量的操作,释放内存空间的真正操作为什么?
posted on 2005-12-19 15:47 TanZek 阅读(309) 评论(0)  编辑 收藏 引用 所属分类: C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理