我有以下结构
struct node{
int value;
struct node *next;
struct node *prev;
};
Run Code Online (Sandbox Code Playgroud)
而且我认为大小必须大于sizeof(整数).
但是如何计算这个结构的整体大小令人困惑.
那么如何计算尺寸呢?
我的意思是我想手动计算,而不是通过计算机...
尺寸至少是sizeof(int) + sizeof(struct node *) + sizeof(struct node *).但它可能更多,因为允许编译器根据需要向结构中添加填充字节.
多大sizeof(int)和sizeof(struct node*)是取决于你的系统.如果你有一个32位系统,它们可能分别是4个字节,如果你有64位系统,它们可能是8个字节.但实际上唯一可以确定的方法是使用编译器打印出大小.
如果您在谈论 32 位应用程序,整数和指针是 4 个字节。因此,您的结构大小为 12 个字节。
struct node{
int value; // 0x0 - 0x4
struct node *next; // 0x4 - 0x8
struct node *prev; // 0x8 - 0xC
};
Run Code Online (Sandbox Code Playgroud)
集会:
struct [0xDEADBEEF] {
int 0x0;
struct node *0x4;
struct node *0x8;
};
Run Code Online (Sandbox Code Playgroud)
侧注存储器指针读取[[0xDEADBEEF] +为0x0]将返回的节点- >值等的当前值。
| 归档时间: |
|
| 查看次数: |
589 次 |
| 最近记录: |