首页 > 其他分享 >代码阅读题-结构体大小

代码阅读题-结构体大小

时间:2022-09-21 14:46:45浏览次数:83  
标签:字节 int 代码 C++ char 阅读 大小 结构

题目如下,小米23秋招-9.20-笔试

首先这是一道C++的题,注意到的第一点是这个二维数组的初始化方式,他是给了一种一维数组的赋值方式,虽然没见过,但是想当然应该是逐层填充

经测试确实似乎这样的,而且给的初始值过多会报错,给少了打印默认值0

	int nums[3][5] = { 1,2,3,4,5,6,7,8,9,10,11,12,13};
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 5; j++) {
			cout << nums[i][j];
		}
		cout << endl;
	}

另外一点后来才注意到的是,我一直记得char是两个字节,但是其实C++中char只有1个字节

Java 采用UTF-16字符集
C++ 逛了一圈也不是很清楚,应该是ASCII

结构体大小的计算

首先,C++中空类/空结构体大小为1,并且当类/结构体不空的时候,这个1就不存在了

是为了使其有不同的内存地址,详见
C++指针32位系统中大小为4,63位大小为8

然后是结构体大小的计算,直接算是:三个char=3字节,加上4字节大小的int,所以应该是7字节
事实上是12字节!!
怎么计算的呢?

字节对齐原则

结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节

结构体中最大的int占四字节,所以每次申请都是4

  1. 申请一个4,两个char占了2
  2. 剩下2字节不够int,占位填充
  3. 再申请一个4,正好够int
  4. 再申请一个4,放最后一个char,剩下的3占位填充
    一共12

标签:字节,int,代码,C++,char,阅读,大小,结构
From: https://www.cnblogs.com/yaocy/p/16715448.html

相关文章

  • gitlab自动同步代码到github
    参考github新建1条tokengithub新建1个私有的空仓库进入gitlab的项目填写内容#github地址https://github.com/chniny/test.git#需要填写的Gi......
  • MySQL查看数据库表容量大小
    1.查看所有数据库容量大小selecttable_schemaas'数据库',sum(table_rows)as'记录数',sum(truncate(data_length/1024/1024,2))as'数据容量(MB)',sum(truncate......
  • 奇技淫巧-Unity运行时运行自定义lua代码
    在利用lua开发游戏的过程中经常会遇到需要查询某些数据或调用某些方法,以往查询数据的方法不是用断点就是写好代码后重新运行游戏,lua的断点被吐槽太卡顿,我用的也比较少,......
  • 记录goland编辑器项目可运行但是代码爆红的解决办法
    问题描述goget-u项目之后飘红还以为是版本不兼容,虽然对功能不影响,但是看着一片红很闹心啊,特此记录一下解决办法,以便下次使用。解决办法步骤一:点击工具栏File,找到In......
  • 数字证书相关·文章阅读
    3分钟告诉你什么是非对称加密、对称加密、公钥、私钥、数字证书、数字签名、信息摘要、中间人攻击、CA、根证书数字证书及CA的扫盲介绍各种数字证书区别p12,crt,key,......
  • Unity中Sprite内存和ab大小异常处理方法
    原因:sprite分辨率超过1024*1024时,就会导致sprite中包含了texture的原始数据(未压缩数据),如下图中的astc_6_6,texture是压缩后的只有1.8m,sprite则直接达到了10.9m解决方法:当sp......
  • 《基于深度学习的跨模态检索综述》阅读笔记
    目录写这篇阅读笔记有如下目标0引言0.1多模态数据是什么?0.2多模态数据有哪些应用?0.3传统单模态检索是什么?0.4跨模态检索是什么?0.4.1优势0.4.2挑战0.4.3可行的解决......
  • 在代码库上设计和创建模块
    在代码库上设计和创建模块为什么我们需要以及如何在代码库中创建模块在业务逻辑和其他功能分散的代码库上工作至少对软件开发人员来说是一个令人沮丧的情况。模块是一......
  • win7 无法更新的解决办法打几个补丁win7更新错误代码80072EFE
    自2020年1月14日起,微软对Windows7的支持正式结束。微软大力推广win10,希望大家赶紧换新系统,于是你懂得,win7开始出现各种稀奇古怪的问题。80072efe不能更新补丁,也算其中之一......
  • IDE//VS//VS2017,VS2019没有代码提示的问题解决
    IDE//VS//VS2017,VS2019没有代码提示的问题解决小小菜鸡于2022-07-2815:24:44发布235 收藏文章标签:idec++visualstudio版权开始菜单-->所有程序–>VisualStudi......