c++ - 关于 union 和内存管理的问题

标签 c++ memory-management unions

我对 union 体及其分配内存的方式感到困惑。假设我有:

union Values
{
    int ivalue;
    double dvalue;
};

Values v;

所以我知道 int 使用 4 个字节,double 使用 8 个字节,所以总共分配了 8 个字节(我认为),也就是说 v 使用多少内存?

最佳答案

您几乎已经回答了您自己的问题:给定一个四字节的 int 和一个 8 字节的 doublev 将使用8 字节内存。

如果不确定,您可以编译并运行一个简单的程序,该程序将打印出 sizeof(v)

关于c++ - 关于 union 和内存管理的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7518625/

相关文章:

c++ - 在 C++ 中引用 C 结构

c++ - 如何使用 WGS84 Datum 将 C 中的 UTM 坐标转换为纬度/经度?

c - 释放后指针的状态

c - 引用计数如何工作?

c - Reinterpret_cast/C 中带有 union 的类型双关功能

c++ - 完成一个类型的数据

c++ - 使用数组作为函数输入参数

iphone - 内存管理问题

c++ - 正在阅读一个不是最近用 GCC 编写的未定义行为的成员吗?

c++ - 如何在 C++ 中将 64 位整数乘以分数同时最小化错误?