结构体内存内存分析

对于初学者来说结构体内存分析为一个不易理解的点,对齐原则是较为常用的,我这里给大家分享一个较为简单的方法,"睡床原则",首先结构体中最大元素需要一张最大的床,每一张床需要以他为标准制定,剩下的元素则分别占用这个大床,有几张床则结构体的占有字节数为最大元素字节数乘以床的数量.例如:

struct Person{

char *name;

int age;

double year;

} ;

最大元素占用字节数位 double 64位操作系统下占用8个字节,所以需要造一张8个字节的床,char类型在double上方需要一张床,这一张床还剩7个字节,而int 在64位操作系统中占用4个字节,所以char类型睡的床还能睡下int 类型,故结构体占用 8*2=16个字节.同理:

struct Person1{

char *name;

double year;

int age;

} ;

占用8*3=24 个字节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值