2017-06-03 17 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個字節的填充。 –

回答