范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

柔性数组在实际项目中的应用?

  文章下方附学习资源,自助领取
  柔性数组在实际中应用还是挺多的,看过上一篇文章 分享一种灵活性很高的协议格式(附代码例子) 的小伙伴不知有没有注意到我们有使用了柔性数组:
  本篇文章我们就来一起学习柔性数组。 什么是柔性数组?
  C99中,结构体中的最后一个元素允许是未知大小的数组,这就叫作  柔性数组  。
  柔性数组的特点: 结构体中柔性数组成员前面必须至少有一个其他成员。 sizeof返回的这种结构大小不包括柔性数组的内存。 包含柔性数组成员的结构用malloc()函数进行内存的动态分配。
  例子: // 微信公众号:嵌入式大杂烩 #include     #include  #include   typedef struct _data {     int len;      char val[]; }data_t;   int main(int arc, char *argv[]) {     data_t test_data1 = {0};      printf("sizeof(data_t) = %ld ", sizeof(data_t));      char *src_data = "hello flexible arr";      // 为结构体及其柔性数组成员申请一块连续的空间     int len = strlen(src_data) + 1;     data_t *p_test_data2 =(data_t*)malloc(sizeof(data_t) + sizeof(char) * len);     if (NULL == p_test_data2)     {         printf("malloc p_test_data2 error ");         return EXIT_FAILURE;     }      // 填充结构体     p_test_data2->len = len;     strncpy(p_test_data2->val, src_data, p_test_data2->len);       printf("p_test_data2->val = %s ", p_test_data2->val);       // 释放内存     free(p_test_data2);     p_test_data2 = NULL;      return 0; }
  编译、运行:
  下面我们一起通过实例来认识柔性数组的优点。
  点击获取1V1嵌入式学习规划,现在还送100G精选学习资料。咨询学习嵌入式物联网开发
  柔性数组与指针的区别?
  上一节的协议格式结构体其实可以又如下两种创建方式: value字段以柔性数组的方式定义: typedef struct _protocol_format {     uint16_t head;         uint8_t id;     uint8_t type;     uint8_t length;     uint8_t value[]; }protocol_format_t; value字段以指针的方式定义: typedef struct _protocol_format {     uint16_t head;         uint8_t id;     uint8_t type;     uint8_t length;     uint8_t *value; }protocol_format_t; (1)结构体占用空间
  柔性数组的方式结构体占用较指针的方式少。
  柔性数组方式:
  指针方式:
  (2)代码简洁及访问速度方面
  柔性数组的方式相对与指针的方式更为简洁,柔性数组的方式只需要申请一次空间,给结构体申请空间的同时也给柔性数组申请空间;而指针的方式,除了给结构体申请空间之外,还得给结构体里的指针成员申请空间。
  柔性数组方式:
  指针方式:
  使用指针的方式写代码会比柔性数组的方式会繁琐一些,特别地,如果在释放内存的时候把顺序弄反了,则结构体里的指针成员所指向的内存就释放不掉,会造成内存泄露。
  柔性数组的方式只需要申请一次空间,是一块连续的空间;而指针的方式,申请的两块空间不是连续的。连续的内存有益于提高访问速度。
  当然,前面介绍柔性数组的时候有说到,柔性数组是在C99标准及之后才有的,如果你的编译器还是比较古老的,那还是选用指针的方式,通用性也会比较好。 作者:嵌入式微处理器
  本文转载自"嵌入式微处理器",如有侵权,请联系删除
  原文链接:柔性数组在实际项目中的应用?
  版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

父母这两个动作,逼出暴脾气孩子餐厅里,一个小女孩写作业被骂哭这么简单的题你都不会?你是猪脑子吗?这时候,隔壁阿姨的反应,暖哭了。她先是让儿子给小女孩递了一张纸巾。然后把小女孩拉过来安慰没有笨的小朋友小朋友有喜欢安全教育防溺水安全溺水事故时有发生,请家长带孩子上好这节防溺水必修课!溺水的特点溺水是一个发生时间短且静默的状态导致溺水事故发生的主要行为容易发生溺水的地点不会游泳者,溺水后如何自救1。不能惊慌不会热销牙膏有问题!家长千万小心宝宝刷牙爱吞牙膏宝爸宝妈担心孩子氟中毒怎么破?网上最近出现了一种可以吃的牙膏网络平台上有大量儿童牙膏标注可吞咽其实这种可吞咽牙膏并不靠谱有上海市民就认为自己购买的可吞咽低氟儿童牙膏一篇越穷越愚昧,越愚昧越贱的文章,让我在头条看见彼此在头条看见彼此卷首语我前段时间写了一篇关于人性的探索文章,题为越穷越愚昧,越愚昧越贱,这就是人性,文章发出后读者褒贬不一,有读懂我文章的朋友们都是持支持的态度,有一些只看题目没仔细打了强心剂!11月100家房企融资总量环比涨超两成近期房地产市场在信贷发债融资等方面利好频传,尤其11月末证监会的第三支箭发布,给房企在资本市场上运作带来了更大可能性,对市场的作用也更像一针强心剂。克而瑞统计,今年11月100家典品牌收购启示录(下)高位套现?高利润更要本领强(图片来源图虫创意)56倍的超高估值?!品牌店铺轻松变现?!时间来到2022年,海外市场行情的不景气仍在延续,更多卖家开始尝试品牌出售锁定多年奋斗的利润,通过改善现金流完成品牌布局当妈后总忘东忘西,是人类祖先留下的高级本领你是不是经常有同样的感受?手机明明刚刚还在用,一转眼就找不到了钥匙就在手里抓着,翻来覆去找不着想去厨房拿碗和筷子,结果就拿了碗出来为啥怀了个孕,感觉脑子就不够使了?当妈后,为啥感觉汉成帝刘骜,这匹骏马脚力有点差,酒喝多了总有醉的时候酒是穿肠毒药,色是刮骨钢刀。古往今来,多少英雄好汉,多少钢铁男儿,都难逃这酒色二字。西汉最拉垮的皇帝,刘骜,终于出场了。他一生的最爱,一个是飞燕,另一个是杜康。真是醉卧床头君莫笑,成年人的关系,都是有保质期的作者洞见安娜贝苏人后一片海,独自上岸。冯唐曾在一篇文章中,说起人与人之间的差距。大家都是同一个起点的,过了十年十五年二十年,所谓的名利权逐渐拉开,落差就出现了。他还发现,那些混得越宝藏文案美好的事物当然值得期待呀或许思念和肌肉一样,长久不动就可以缓缓消失在身体里。似水流年才是一个人的一切,其余的全是片刻的欢娱和不幸。时光驯服一切,我与往事之间,像回声,再怎么千回百转,终究消失在山谷。我没多蛋糕师教你做榴莲千层,烘焙店二百多一个,在家一口平底锅就搞定本期导读蛋糕师教你做榴莲千层,烘焙店二百多一个,在家一口平底锅就搞定欢喜妈妈平时经营着一家私房烘焙店,在制作甜品方面可以说有一些经验。榴莲千层算得上是资深网红产品了,最近几年一直卖
中建的施工员,因怕分包老向领导投诉,逢年过节就送礼,可是听说应该反过来,求大神指导如何与分包斗智斗勇?题主这问题有点让人困惑,公司施工员居然怕分包投诉反送礼,没想到还存在这种现象,兄弟,你咱混的啊?要想治分包,给你几点建议1首先你得熟悉合同,了解合同中对分包的各项约定要求,比如对分主持人涂磊是一个怎么样的人?素有犀利冷面内地男主持人之称的涂磊,这些年也是备受人们的关注,他在情感综艺爱情保卫战中,那每一次的分析与点评,都恰到好处,让人有种特别崇拜的感觉。就是这位在荧屏中,如此受人喜爱如此鲁班带暴击铭文好还是百穿铭文好?为什么?百穿和暴击符文的取舍一直是王者荣耀中输出英雄所面临的问题。前者可以有效提供前期的稳定输出,对于脆皮英雄更是有着毁灭性的打击而后者则偏向于中后期的团战爆发,搏一搏,单车变摩托,可谓各王者荣耀当你被迫打野的时候你会选择谁?哈喽,很高兴能够回答这个问题,那么一般没得打野的情况下,该如何选择打野。我们先不要选择一些难度比较高的打野位,如果你不会选了照样也打不了。典韦,典韦这个英雄,在低分段王者局以下是完保利尼奥孔卡奥斯卡三名外援哪个更强?个人认为还是孔卡在中超踢的如鱼得水保利尼奥最强,他进巴萨担任主力替补,一个赛季进9球,也进巴西国家队常客,担任主力,也进过球。奥斯卡也进过巴西队,到英超就混不开。孔卡从未进过阿根廷现在挖矿已经国家禁止了,为什么显卡的价格还降不下来?我国确实禁了挖矿,但是放眼世界,很多有电没钱的国家地区,对矿场并不抵制,要知道,这是赚美刀的营生啊挖矿能用多少卡?专业矿机才是主力!显卡价格居高不下挖矿背锅,是显卡厂商误导的!就是小米5X发布了,买完OPPOR11的你们后悔了吗?小米就是垃圾手机,我买的小米手机用了一年多就出问题,屏幕闪屏,电池发热汤手,经常死机,对方打电话听不到对方说话声音,又修不好,只有报废,简直就是垃圾手机,以后再也不买小米手机。小米冬季用什么洗脸会变白?冬季用什么洗脸会变白?冬季保养肌肤变白最佳选择1在冬季节里休息时间是最好的美白,皮肤变白变好就要比其它春夏秋三个季节睡眠时间足够长些,喝水足养份够外,冬季节不主张作动太多用化学性质为啥我们工人和事业单位退休金差距那么多呢?造成这种情况的原因是双轨制政策带来的。所谓双轨制就是上世纪九十年代初,企业开始试行养老保险制度。即企业员工按照个人工资中扣除5(以后逐步提高到8),企业缴纳20,建立个人养老保险制已经5060岁的60后,你见过混的最惨的有多惨?混的如何有时不是自己能左右的,有时是时代捉弄人。记得文革期间,我队有黄姓两兄弟,大哥在北京,解放前是小业主,有房有店面,混的相当风光。其弟弟在我村务农,文革前,其弟前往北京探望大哥我经常跑高速新速腾1。2T发动机动力够用吗?1。2T速腾高速跑120没问题,而且大众的涡轮调教都很好,动力响应足够,但是涡轮介入前的动力很费劲,而且排量限制,提速不会很强。普通跑高速,不激烈驾驶的情况,完全够用。吐了,前两个