关于C++内存对齐

关于C++内存对齐

测试代码如下:

class EmptyClass
{
    int nOne = 1;
    int nTwo = 2;
    int nThree = 3;
};

int main(int argc, char *argv[])
{

    EmptyClass instance;
    system("pause");
    return 0;
}

instance 的地址为0X0015FE44,如下图所示


address.png

在内存中找到该地址:


关于C++内存对齐_第1张图片
memory.png

发现三个成员变量都被依照定义的顺序写入到了内存中,而由于内存对齐(windows下内存以8的倍数进行内存对齐),再nThree的末尾插入了4个0XCC数据,以保持对齐

你可能感兴趣的:(关于C++内存对齐)