首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教为什么计算结构体的大小的时候多了4字节?

2012-03-12 
请问为什么计算结构体的大小的时候多了4字节???代码如下:structtest{charb[20]doublec[10]}main(){void

请问为什么计算结构体的大小的时候多了4字节???
代码如下:
struct   test
{
char   b[20];
double   c[10];
};
main()
{
void   *ptr=calloc(sizeof(struct   test),10);
return   0;
}
结果在sizeof(struct   test)这里得到的大小是104
如果把上面的结构体换成
{
char   b[20];
int   a[10];
};
得到的结果是60。
请问用double型的时候为什么会多出4的大小呢????而int型又没多出?
XP下,VC6.0   DEBUG模式


[解决办法]
楼主记得给分啊。好不容易碰上一次会的。
[解决办法]
{
char b[20];
int a[10];
};

int 是 4字节的,
对齐到 4
100 对齐到4 还是100
[解决办法]
虫子又来抢分了。。。。。。
[解决办法]
mark

struct test
{
double c[10];
char b[20];
};

这样就 100 啦 ?
[解决办法]
最近怎么关于数据对齐的问题这么多啊
先用offsetof看看

热点排行