代码如下:

#include<iostream>
using namespace std;
void main()
{
    int i1;
    int i2;
    int i3;
    cout<<&i1<<endl;
    cout<<&i2<<endl;
    cout<<&i3<<endl;
}

以上代码就是打印出三个变量的地址(是在栈中分配内存的,向下延生),在Debug和release模式下,情况会有所不同!!可以很明显的看出,debug下每个地址之间相差12个字节;而release模式下则相差4个字节;按我们的理解每个int类型的变量应该需要4个字节,所以release情况下的结果是符合我们的预想的。为什么debug会发生不同呢?这个地址还是连续的,只是debug版本在每个变量两边增加了,若干数据。变量尺寸变大了。32Bits 的int通常是4字节,但是debug版本,实际上分配了12字节,左右各4字节。

于是好像不连续了。实际按照12字节算的话还是连续的。

 http://bbs.csdn.net/topics/390376066

http://bbs.csdn.net/topics/310138883

1、debug模式下

关于连续定义的几个变量的地址连续问题

2、release模式下

关于连续定义的几个变量的地址连续问题

 

相关文章:

  • 2021-11-18
  • 2021-12-23
  • 2022-12-23
  • 2021-10-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-21
猜你喜欢
  • 2022-12-23
  • 2021-09-02
  • 2022-12-23
  • 2021-04-25
  • 2021-05-27
  • 2022-02-03
  • 2022-12-23
相关资源
相似解决方案