当前位置: 首页 > news >正文

C语言的“动态数组”

C语言的“动态数组”

掩码结构体宏的实现本质上就是使用一个掩码数组 chMask 把结构体保护起来。见《大佬的PLOOC使用示例及其基于C语言的面向对象编程-傻孩子.pdf》

 1 /* 公众号:嵌入式大杂烩 */
 2 #ifndef __DYNAMIC_ARRAY_H
 3 #define __DYNAMIC_ARRAY_H
 4  
 5 /* 结构体“重命名” */
 6 typedefstruct dynamic_array dynamic_array_def;
 7  
 8 /* 初始化dynamic_array */
 9 dynamic_array_def *DA_Init(void);
10  
11 /* 销毁dynamic_array */
12 voidDA_Clean(dynamic_array_def *pThis);
13  
14 /* 设置dynamic_array长度 */
15 voidDA_SetSize(dynamic_array_def *pThis, unsigned len);
16  
17 /* 获取dynamic_array长度 */
18 unsignedDA_GetSize(dynamic_array_def *pThis);
19  
20 /* 设置dynamic_array某元素的值 */
21 intDA_SetValue(dynamic_array_def *pThis, unsigned index, int value);
22  
23 /* 获取dynamic_array某元素的值 */
24 intDA_GetValue(dynamic_array_def *pThis, unsigned index, int *pValue);
25  
26 #endif
dynamic_array.h
 1 /* 公众号:嵌入式大杂烩 */
 2 #include "dynamic_array.h"
 3 #include <stdlib.h>
 4  
 5 /* 创建一个动态数组结构体模板 */
 6 struct dynamic_array
 7 {
 8     int*array;
 9     unsigned len;
10 };
11  
12 /* 初始化dynamic_array */
13 dynamic_array_def *DA_Init(void)
14 {
15     dynamic_array_def *pArray =malloc(sizeof(dynamic_array_def));
16  
17     pArray->array=NULL;
18     pArray->len =0;
19 }
20  
21 /* 销毁dynamic_array */
22 voidDA_Clean(dynamic_array_def *pThis)
23 {
24     free(pThis->array);
25     pThis->len =0;
26     free(pThis);
27 }
28  
29 /* 设置dynamic_array长度 */
30 voidDA_SetSize(dynamic_array_def *pThis, size_t len)
31 {
32     pThis->len = len;
33     pThis->array=(int*)realloc(pThis->array, pThis->len*sizeof(int));
34 }
35  
36 /* 获取dynamic_array长度 */
37 size_tDA_GetSize(dynamic_array_def *pThis)
38 {
39     return pThis->len;
40 }
41  
42 /* 设置dynamic_array某元素的值 */
43 intDA_SetValue(dynamic_array_def *pThis, size_t index, int value)
44 {
45     if(index > pThis->len)
46     {
47         return-1;
48     }
49  
50     pThis->array[index]= value;
51     return0;
52 }
53  
54 /* 获取dynamic_array某元素的值 */
55 intDA_GetValue(dynamic_array_def *pThis, size_t index, int *pValue)
56 {
57     if(index > pThis->len)
58     {
59         return-1;
60     }
61  
62     *pValue = pThis->array[index];
63     return0;
64 }    
dynamic_array.c

 

http://www.gsyq.cn/news/18852.html

相关文章:

  • 详细介绍:Spring Boot 应用示例
  • (Sigcomm25) Stellar: 阿里新一代云AI RDMA网络
  • 背包 dp 历年真题:做题记录
  • 【触想智能】什么是工业平板电脑以及工业平板电脑对制造业具有什么意义
  • 虚树学习笔记
  • OUC《软件工程原理与实践》- 实验2:深度学习基础 - OUC
  • 类型转化
  • 事件驱动重塑 AI 数据链路:阿里云 EventBridge 发布 AI ETL 新范式
  • 我把Excel变成了像素画板!用Python实现图片到单元格的映射
  • 2025 年山东染井吉野樱 / 高杆染井吉野樱花 / 染井吉野樱花小苗厂家推荐:绿影园林的培育技术与全规格供应解析
  • 云存储成本自动优化技术解析
  • SAP 中CONCATENATE 空格的时候,空格不生效
  • OIFHA251011 比赛总结
  • 一种智能调度分布式路径计算解决方案
  • 实用指南:SDN 控制器深度剖析:架构、对比与实践部署
  • Halo RAG!
  • 2025 自动门生产厂家最新推荐榜:权威筛选优质品牌,含选购指南与实力厂家深度解析
  • 医德出诊排班挂号管理系统:医院高效运营与便民服务的智能解决方案
  • 2025 年北京市清理化粪池公司最新推荐排行榜:聚焦高压技术与全城服务的权威甄选朝阳区/丰台区/海淀区/通州区清理化粪池厂家推荐
  • 报表方案Stimulsoft 2025.4 重磅发布!新增AI报表助手、C#脚本支持、全新图表类型等多项功能!
  • Prometheus的Exporter的数据采集机制
  • 2025 年珠三角 / 中山 / 东莞 / 佛山厂房出售公司推荐:中创集团产业生态型厂房的价值与服务解析
  • 拷贝和上传文件,涉及隐私协议
  • 2025储罐厂家,钢衬塑储罐,钢塑复合储罐,化工储罐,防腐储罐,PE储罐,盐酸储罐,硫酸储罐,聚丙烯储罐,不锈钢储罐,次氯酸钠储罐各类型最新推荐榜:品质卓越与技术创新的行业先锋!
  • 2025 年国内标志牌生产厂家最新推荐排行榜:聚焦优质企业助力客户精准选择道路/限速/公路/施工/警示/限高/三角/安全标志牌厂家推荐
  • 在Scala中,如何在泛型类中使用类型参数?
  • Maple 2025 来了!AI 赋能 + 6000 + 命令,破解数学计算、科研与教学痛点
  • 2025 护眼台灯厂家最新推荐榜单:权威解析明可达等五强品牌,护眼参数与选购指南全攻略
  • UPage 正式开源!
  • 2025 年无线耳机源头厂家最新推荐榜单:覆盖头戴式 / 电竞 / 平价 / 电脑 / 游戏多品类且聚焦全产业链与精益制造的权威名录