c++ - 关于声明变量时内存分配的问题
问题描述
据我所知,当我在 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上对此进行了测试。
解决方案
推荐阅读
- sql-server - 表达式变量在运行时发生变化
- azure - azure DPS 注册流程能否与 SAP 或任何其他 CRM 集成?
- flutter - 使用 Flutter 的 Firestore
- javascript - 如何在 reactjs 的条件渲染中添加类名?
- c# - 在 Visual Studio 中禁用特定代码块的代码格式
- django - Django FileExtensionValidator 不显示错误消息
- javascript - 如何实现这种打字和删除效果?
- reactjs - 使用本机反应在徽标单击时来回旋转动画
- azure - Azure Active Directory 联合
- c# - 如何使用 select 命令将单元格的值从网格视图存储到数据库?