c语言获取结构体大小sizeof,C语言sizeof求结构体数组长度

这篇博客探讨了C语言中使用sizeof运算符来计算结构体数组的长度。通过示例展示了如何计算包含不同元素数量的结构体数组的大小,并解释了结构体内存对齐的原理。

C语言sizeof求结构体数组长度

C语言sizeof求结构体数组长度

#include

typedef struct ss{

char a;//偏移量为0,大小为1,0能被1整除,=1

short b;//偏移量为1,大小为2,1不能被2整除,=1+1+2=4

int c;//偏移量为4,大小为4,4能被4整除,=4+4=8

long d;//偏移量为8,大小为4,8能被4整除,=8+4=12

} ss_t;

struct ss s1[]={

{0x1,0x2,0x3,0x4},

{0x5,0x6,0x7,0x8},

{0xa,0xb,0xc,0xd},

};

int s1_len= sizeof(s1)/sizeof(s1[0]);

struct ss s2[]={

{0x1,0x2,0x3,0x4},

{0x5,0x6,0x7,0x8},

{0xa,0xb,0xc,0xd},

{},

};

int s2_len= sizeof(s2)/sizeof(s2[0]);

struct ss s3[]={

{},

{0x1,0x2,0x3,0x4},

{0x5,0x6,0x7,0x8},

{0xa,0xb,0xc,0xd},

};

int s3_len= sizeof(s3)/sizeof(s3[0]);

int main()

{

/* 我的第一个 C 程序 */

printf("sizeof(s1)=%d, szieof(s1[0])=%d, s1_len=%d \n", sizeof(s1), sizeof(s1[0]), s1_len);

printf("sizeof(s2)=%d, szieof(s2[0])=%d, s2_len=%d \n", sizeof(s2), sizeof(s2[0]), s2_len);

printf("sizeof(s3)=%d, szieof(s3[0])=%d, s3_len=%d \n", sizeof(s3), sizeof(s3[0]), s3_len);

return 0;

}

e9438dccb6ee6a7b011217b4a506243d.png

C语言sizeof求结构体数组长度相关教程

自学笔记:数据结构

自学笔记:数据结构 数据结构 ##2.1 数据结构 根据韩顺平老师的数据结构与算法视频学习的 包括: 线性结构 和 非线性结构 线性结构:最常用的数据结构。特点是数据与元素之间存在一对一关系,例如数组,队列,链表,栈等。按照存储结构又分为顺序存储结构和链

哈佛大学——差异表达分析(二)R语言复习

哈佛大学——差异表达分析(二)R语言复习 文章目录 DGE分析流程 R语言复习QA 学习目标 Setting up Creating vectors/factors and dataframes Exploring data Extracting data Visualizing data Preparing for downstream analysis tools DGE分析流程 理解在R

数据结构和算法:05.稳定和不稳定排序、归并排序和快速排序、三

数据结构和算法:05.稳定和不稳定排序、归并排序和快速排序、三路快排 具体代码请看: NDKPractice项目的datastructure 1. 稳定排序和不稳定排序: 稳定排序概念: 通俗地讲就是能保证排序前两个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺

三、Oracle数据体系架构之:进程结构

三、Oracle数据体系架构之:进程结构 文章目录 三、Oracle数据体系架构之:进程结构 1. DBWN 写进程 2、LGWR 日志系写进程 3、OKPT 4、SMON 系统监视进程 5、PMON 进程监控 三、Oracle数据体系架构之:进程结构 分为:DBWN 写进程 ? lgwr 日志写进程 ? okpt

socket结构化传输网络数据(简易版)

socket结构化传输网络数据(简易版) #define WIN32_LEAN_AND_MEAN#define _WINSOCK_DEPRECATED_NO_WARNINGS#includeWinSock2.h#includeWindows.h#includeiostream#pragma comment(lib,ws2_32.lib)//传输的数据结构,最简单的数据包//每个函数的类型必须一样

HTML 初识

HTML 初识 HTML 初识 HTML 指的是超文本标记语言 ( H yper T ext M arkup L anguage)是用来描述网页的一种语言。 HTML 不是一种编程语言,而是一种标记语言 (markup language) 标记语言是一套标记标签 (markup tag) 网页是由网页元素组成的 , 这些元素是利用

树状数组 数据结构详解与模板(可能是最详细的了)

树状数组 数据结构详解与模板(可能是最详细的了) 树状数组基础 高级操作 本文转载自:https://bestsort.cn/2019/04/26/195/ 树状数组是一个查询和修改复杂度都为log(n)的数据结构。主要用于数组的单点修改区间求和. 另外一个拥有类似功能的是线段树. 具体区别

【C语言】一些初学易犯的小错集合2

【C语言】一些初学易犯的小错集合2 【C语言】一些常犯的小错集合2 不知道大家有没有犯过这种错,反正我是在定义字符类型的时候忘加单引号或者是加成了双引号。 在此记录一下正确的方式: char定义的字符要用 单引号 引起(使用单引号作为定界符): char ch = 'w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值