链接列表中的节点类的大小为16

Size of Node Class in Linked List coming out to be 16?

本文关键字:小为 节点 列表 链接      更新时间:2023-10-16
#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?

编译器添加了额外的对齐空间。所谓的内存填充。这是对其的详细说明:填充和包装