链接列表中的节点类的大小为16
Size of Node Class in Linked List coming out to be 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?
编译器添加了额外的对齐空间。所谓的内存填充。这是对其的详细说明:填充和包装
相关文章:
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- 最小的CMake构建为Android
- 为什么我的节点在我设置后被设置为 nullptr = 新节点?
- 无法为 X.radio 创建中等可视化,因为找不到网络节点可视化 - Omnet++
- 节点是否为空,即使它有一个值?
- 将"-01"替换为"-02" 英特尔编译器选项会导致 FPE 在较小的 for 循环行程计数中抛出
- 如何将节点 V8 字符串转换为 C++ 字符串
- 错误:无法从节点*转换为节点 c++?
- 指针取消引用:无法将“节点**”转换为“节点*”
- 我不知道如何调用参数为节点类型的函数
- 搜索一组点,其长度总和最小为矩形.算法是什么
- 无法将参数从"this"转换为节点<T>*
- 如何在速推中为节点分配标签
- 将阵列转换为节点
- 为节点分配指针地址
- 获取类型为"节点"的临时对象的地址
- 错误 2440 无法从"int"转换为"节点"
- 将树的每个节点替换为节点左侧所有值的和,而不使用额外的整数指针参数
- C++中的树实现:无法将节点转换为节点*