关闭

C语言中结构体内存分配机制

标签: C结构体内存分配c语言struct
1027人阅读 评论(0) 收藏 举报

C语言中结构体内存分配机制

内存分配遵循的原理:

(1) :分配的内存空间的大小必须是4的倍数

(2):在结构体中每一个类型类型说明符(char,int,float,double,long)分配的内存空间的大小与类型说明符最大的字节保持一致(例如:结构体中字节最长的类型为long,则每一个类型分配的内存都和long保持一致).

(3):若分配的内存空间比当前的类型的字节大,则后面的类型补上(若后面的为int类型,则int在能被4整除的地址空间进行补上).

直接通过例子来说明:


//结构体

typedef struct Student{

    long Age;

    char sex;

    float Score;

    char s;

    int d;

    

}Student;


上面的结构体分配的内存空间为 24个字节

(1) 首先long分配8个字节空间存储long型变量,
(2) 接着为char分配8个字节空间,但char类型只占一个类型空间
(3) 所以还会剩余7个字节空间,则剩余的字节空间由float类型变量补上,在能被4整除的地方补上,
(4) 再为char类型的变量分配8个字节
(5) 剩余的字节在第四个字节空间由int类型的变量填充





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:24201次
    • 积分:632
    • 等级:
    • 排名:千里之外
    • 原创:40篇
    • 转载:4篇
    • 译文:0篇
    • 评论:1条
    最新评论