C++ 链表中节点类的大小为16? #包括 使用名称空间std; 类节点 { 公众: int数据; 节点*下一步; }; int main() { Node*re=新节点(); Node*t=新节点(); re->data=2; re->next=t; cout
编译器为对齐添加了额外的空间。所谓的内存填充。C++ 链表中节点类的大小为16? #包括 使用名称空间std; 类节点 { 公众: int数据; 节点*下一步; }; int main() { Node*re=新节点(); Node*t=新节点(); re->data=2; re->next=t; cout,c++,linked-list,size,C++,Linked List,Size,编译器为对齐添加了额外的空间。所谓的内存填充。 这里有一个详细的解释:它被称为padding。假设是64位操作系统,next成员必须是8字节对齐的,因此在每个实例中,int和指针之间有4个字节的padding。 #include<iostream> using namespace std; class Node { public: int data; Node *next; }; int main() { No
这里有一个详细的解释:它被称为padding。假设是64位操作系统,
next
成员必须是8字节对齐的,因此在每个实例中,int
和指针之间有4个字节的padding。
#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;
}