Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 链表中节点类的大小为16? #包括 使用名称空间std; 类节点 { 公众: int数据; 节点*下一步; }; int main() { Node*re=新节点(); Node*t=新节点(); re->data=2; re->next=t; cout_C++_Linked List_Size - Fatal编程技术网

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;

}