指针地址是否相同

aaseh 2011-05-21 05:54:32
cstring* s1=new cstring("abc");
s1=new cstring("dedfsfsf");

执行完第一行代码后s1的指针地址,和 执行完第二行代码后s1的指针地址 相同吗?
...全文
194 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
moxiaomomo 2011-05-23
  • 打赏
  • 举报
回复
有new的地方就应该有随后及时出现的delete,公不离婆,秤不离砣
feimashenhua 2011-05-23
  • 打赏
  • 举报
回复
同意九楼
chenyi00800 2011-05-23
  • 打赏
  • 举报
回复
在cstring* s1=new cstring("abc");后加一条
cout<<&s1<<endl;在s1=new cstring("dedfsfsf");
后也加一条cout<<&s1<<endl;语句执行程序看&s1的值就知道了;这种问题不用问别人自己就可以搞定的;
vcf_reader 2011-05-23
  • 打赏
  • 举报
回复
内存泄露
碎炎 2011-05-23
  • 打赏
  • 举报
回复
存的地址不一样 s1本身地址一样
Meteor_Code 2011-05-23
  • 打赏
  • 举报
回复
s1 的地址是相同的
s1指向的地址是不同的
...明白我的意思吗?
woshidarklord3205 2011-05-23
  • 打赏
  • 举报
回复

cstring* s1=new cstring("abc");
printf("%X\n", s1);//第一次地址
s1=new cstring("dedfsfsf");
printf("%X\n", s1); //第二次地址
c_losed 2011-05-21
  • 打赏
  • 举报
回复

cstring* s1=new cstring("abc");
printf("%d\n", s1);//第一次地址
s1=new cstring("dedfsfsf");
printf("%d\n", s1); //第二次地址
aaseh 2011-05-21
  • 打赏
  • 举报
回复
这样吗?
cstring* s1=new cstring("abc");
long a1=*(long*)s1;
s1=new cstring("dedfsfsf");
long a2=*(long*)s1;

if(a1==a2){
doSomeThing...
}
downmooner 2011-05-21
  • 打赏
  • 举报
回复
不一样
c_losed 2011-05-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 aaseh 的回复:]

怎么验证地址是否相同?
[/Quote]
debug F10单步之 看地址就明白了
aaseh 2011-05-21
  • 打赏
  • 举报
回复
怎么验证地址是否相同?
lirg8405 2011-05-21
  • 打赏
  • 举报
回复
不一样
KID_coder 2011-05-21
  • 打赏
  • 举报
回复
new了两次。。。
分配了两次地址~ 第一次没有delete掉,造成内存泄露
第二次分配的是新地址
两次的地址不一样

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧