黑马程序员技术交流社区
标题:
谁知道结构体内存分配具体规则
[打印本页]
作者:
fanxing
时间:
2015-6-13 12:39
标题:
谁知道结构体内存分配具体规则
看了基础加强视频,有一个问题是关于结构体内存分配的有点搞不懂,大神路过给指点一下
作者:
白0702
时间:
2015-6-13 22:36
结构体数据遵循模数对齐原则,因此结构体长度为模数的倍数。具体参照下面程序示例:
struct student{
int num;
char sex;
float score;
}stu1;
该数据结构中int占4字节,char占1字节,float占4字节,数据占得最大字节数为4,故模数为4,按照模数对齐原则,结构体长度为12。
struct student{
short num;
char sex;
float score;
}stu1;
上面例子中short占2字节,char占1字节,float占4字节,故模数为4,但前面short和char总共才占3个字节,故4个字节空间可以存放两个变量,因此结构体长度为8。
视频上老师都讲过了,需要自己做一下练习题来深入了解,共同学习了。
作者:
fanxing
时间:
2015-6-14 13:33
白0702 发表于 2015-6-13 22:36
结构体数据遵循模数对齐原则,因此结构体长度为模数的倍数。具体参照下面程序示例:
struct student{
感谢,知道了
作者:
tabor
时间:
2015-6-16 12:39
好详细,真的要多敲敲才好
作者:
talent123
时间:
2015-6-16 15:27
从上往下加
char
char
char
char-----这里是4
char-----这里是5 对齐算作8
最后结果是8
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2