首页 > 解决方案 > 关于声明变量时内存分配的问题

问题描述

据我所知,当我在 C++ 中声明整数类型的变量时,操作系统(Windows)分配了 4 个字节的内存。

为了测试,我在主函数中声明了两个 int 类型变量(a 和 b)并比较了它们的内存地址。我发现两个变量地址之间的差距是 12 个字节。(我期待 4 个字节的差异)

下面是一个简单的测试代码。

int main()
{   
    int a;
    int b;

    std::cout << &a << std::endl;
    std::cout << &b << std::endl;

    return 0;
}

输出:007BFDF4 007BFDE8

如图所示,两个地址之间的间隔为 12。(当我使用数组时,我得到了预期的内存地址)这是因为字节填充吗?或任何其他原因?

附言。我在visual studio 2019 / windows 10上对此进行了测试。

标签: c++memory-managementstack-memory

解决方案


推荐阅读