2017-06-03 18 views
1
#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; 

} 

输出继电器:链表中节点类的大小是16?

怎么来的阶级的大小现身为16

我得到怎样的大小指针在64位机器上是8个字节,在整数上是4个字节。那么这个阶级的规模不应该是12(8 + 4),即阶级成员的总和吗? 为什么还有4个?

+0

它被称为填充。假设一个64位操作系统,'next'成员必须是8字节对齐的,所以在每个实例中'int'和指针之间有4个字节的填充。 –

回答