草庐IT

c++ - 奇怪的数据对齐

据我所知,数据对齐是将数据放入内存中的64位/32位block中以提高CPU性能,我使用的是64位linux机器,我做了一些测试并得到了一些奇怪的结果(我无法解释行为)。这是我使用的结构:classA{longl0,l1,l2;};classB{longl0,l1,l2,l3;};classC{longl0,l1,l2,l3,l4;};测试:intmain(){C*newC=newC();B*newB=newB();A*newA=newA();int*i=newint();std::cout只是将每个对象的1个对象放入堆中,我在末尾添加了一个指针以查看newA占用的内存结果是这样的:2