VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 163|回复: 5

[已解决]麻烦问下 windows自带的内存压缩是否会导致这个问题。

[复制链接]
20_avatar_middle
最佳答案
0 
在线会员 发表于 2020-2-26 11:06:13 | 显示全部楼层 |阅读模式
本帖最后由 李覃鹏 于 2020-2-26 11:08 编辑

学C++到内存的四区原理的时候  跟着视频操作 发现了一个问题。

因为理论上定义不同变量的时候 变量所指向的内存地址应该不同才对,但却发现,定义的变量内存地址完全相同 但值却是不同的。

或者那位大佬没开内存压缩的帮试下 看下结果是否还是一致的。

想问下各位大佬是不是windows自带的内存压缩的锅;话不多说 上代码。
  1. #include <iostream>

  2. using namespace std;

  3. int* getcha1() {
  4.         int p1 = 999;
  5.         cout << "p1的内存地址为: " << &p1 << "\tp1的值为: " << p1 << endl;
  6.         int* p2 = &p1;
  7.         cout << "p2的内存地址为: " << &p2 << "\tp2的值为: " << p2 <<"\t*P2为: "<<*p2<< endl;
  8.         return p2;
  9. }
  10. int* getchar2() {
  11.         int p3 = 998;
  12.         cout << "p3的内存地址为: " << &p3 << "\tp1的值为: " << p3 << endl;
  13.         int* p4 = &p3;
  14.         cout << "p4的内存地址为: " << &p4 << "\tp2的值为: " << p4 << "\t*P4为: " << *p4 << endl;
  15.         return p4;
  16. }



  17. int main()
  18. {
  19.         getcha1();
  20.         getchar2();

  21. }
复制代码




最佳答案
58_avatar_small
2020-2-26 12:03:36
你看反汇编代码里用到栈没有,即然前面的地址已出栈,为什么不能用前面的地址。
QQ图片202002.png

运行结果

运行结果




上一篇:VC++基础班P25查找定义
下一篇:listbox 没有addstring
20_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-26 21:08:12 | 显示全部楼层
thzzl 发表于 2020-2-26 12:03
你看反汇编代码里用到栈没有,即然前面的地址已出栈,为什么不能用前面的地址。


说的很对 点醒了,前面的变量已经出了作用域被回收了,然后后面的继续使用,如果两条放在一个作用域内内存地址就完全不一样了,忘了还有作用域这玩意了。。麻烦问下 windows自带的内存压缩是否会导致这个问题。
麻烦问下 windows自带的内存压缩是否会导致这个问题。
麻烦问下 windows自带的内存压缩是否会导致这个问题。
20_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-26 11:10:00 | 显示全部楼层
咳咳  最后一行的p4打错成p2了 大佬们请无视
58_avatar_middle
最佳答案
45 
online_vip 发表于 2020-2-26 12:03:36 | 显示全部楼层    本楼为最佳答案   
bestAnswer
你看反汇编代码里用到栈没有,即然前面的地址已出栈,为什么不能用前面的地址。
77_avatar_middle
最佳答案
31 
online_vip 发表于 2020-2-26 16:15:53 | 显示全部楼层
我现在怀疑这个地址值打印的正确吗?
最好下断点调试下看看,地址我感觉肯定会不一样的,可能是打印的问题
还是下断点之后把变量的地址拖到监视窗口看一眼吧
58_avatar_middle
最佳答案
45 
online_vip 发表于 2020-2-27 07:11:29 | 显示全部楼层
李覃鹏 发表于 2020-2-26 21:08
说的很对 点醒了,前面的变量已经出了作用域被回收了,然后后面的继续使用,如果两条放在一个作用域内 ...

建议看看站长的课,讲的很详细。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-11-25 18:33

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表