C下内存分配的一些知识【VS2010下测试】

struct中内存分配的问题,大概为一下几种情况【VS2010】(一般情况下,在VS2010下分配内存最小单位为4个字节)。
1、如果一个类型所占字节不满4个字节,则从低位向高位占用该字节,如char类型;
2、如果一个类型所占用字节大于4个字节,则求该类型占用字节除以4,然后加1,即为所占字节数;
3、如果一个类型没有占满4个字节,而且接下来的数据类型占用字节数和前一个类型占用字节数之和也没有占满4个字节,则后一个数据紧挨着前一个数据存储,例如char a, char b, a和b所占字节数之和肯定不大于4个字节数,则两者紧挨着存储,假如a的地址为0x00000000,则b的地址为0x00000001;再例如short int c; char d, c和d所占字节数也没有大于4个字节,则两者紧挨着存储,如果c的地址为0x00000000,则d的地址为0x00000002;
4、如果一个类型没有占满4个字节,而且接下来的数据类型占用字节数和前一个类型占用字节数之和大于4个字节,则前一个类型占用4个字节存储,后一个类型接着存储,例如char a, int b, a和b所占用字节数之和大于4个字节,则a占用4个字节存储,b占用4个字节存储,假如a的地址为0x00000000,b的地址为0x00000004.
由于不同编译器处理不一样,所以要想得到适合您所工作环境的结果,最好写一个小的测试程序,查看一下,这样最准确。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值