#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node *next;
};
int main()
{
Node* re=new Node();
Node* t=new Node();
re->data=2;
re->next=t;
cout<<sizeof(Node)<<endl;
cout<<sizeof(re->data)<<endl;
cout<<sizeof(re->next)<<endl;
}
ouput:
16
4
8
班级的大小是16。
我得到指针的大小是64位机器上的8个字节和4个字节整数。那么,班级的大小不应该是12(8 4(,即班级成员的总和吗?为什么有一个额外的4?
编译器添加了额外的对齐空间。所谓的内存填充。这是对其的详细说明:填充和包装