当前位置:  开发笔记 > 编程语言 > 正文

为什么递增指针会给出一个与存储器地址相对的随机数?

如何解决《为什么递增指针会给出一个与存储器地址相对的随机数?》经验,为你挑选了1个好方法。

为什么当我递增指针然后取消引用它时,我得到一个随机数?

这是我的代码:

 #include 

 using namespace std;

 int main(){
     int reference = 10;
     int *health = &reference;
     int *health1 = health;
     cout << "Health Address: " << health <<
        "\nHealth1 Address: " << health1 <<
        "\nReference Address: " << &reference << endl;
     health1++;
     cout << "Health1 value after being incremented then dereferenced: " << *health1 << endl;     
  }

我的输出是:

健康地址:0x7fff5e930a9c

Health1地址:0x7fff5e930a9c

参考地址:0x7fff5e930a9c.

增加后的Health1值然后取消引用:197262882

我期望获得0,因为下一个内存地址的下一个值将为null,但在这种情况下情况并非如此.



1> Ari0nhh..:

由于内存中的下一个位置为空,我原本期望得到0,但在这种情况下情况并非如此.

你的期望是错误的.增加指针后,它不再指向有效的内存缓冲区.取消引用它会调用未定义的行为.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有