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

做现货需要关注的网站均安公司网站建设

做现货需要关注的网站,均安公司网站建设,有趣的网站之家,申请个人企业邮箱今天突然看到一个比较特别的知识点——柔性数组。它是在C99中出现的一种特别的数组#xff0c;具体是指结构体中的最后一个元素允许是未知大小的数组#xff0c;这就叫做『柔性数组』成员。 目录 1.柔性数组的定义 2.柔性数组的特点 3.柔性数组的使用举例 4.柔性数组的优…今天突然看到一个比较特别的知识点——柔性数组。它是在C99中出现的一种特别的数组具体是指结构体中的最后一个元素允许是未知大小的数组这就叫做『柔性数组』成员。 目录 1.柔性数组的定义 2.柔性数组的特点 3.柔性数组的使用举例 4.柔性数组的优点 1.柔性数组的定义 柔性数组定义的一般形式为 typedef struct st_type {          int i;         int a[0];//柔性数组成员 }type_a;//这里的typedef是重命名的意思是把原来struct struct st_type命名为type_a以方便使用 有些编译器会报错我们可以改成下面这种定义方式。 typedef struct st_type {          int i;         int a[ ];//柔性数组成员 }type_a; 2.柔性数组的特点 ①结构中的柔性数组成员前面必须至少有一个其他成员。  ②sizeof 返回的这种数据结构大小不包括柔性数组的内存。  ③包含柔性数组成员的结构用malloc ()函数进行内存的动态分配并且分配的内存应该大于结构的大小以适应柔性数组的预期大小即malloc申请的空间应该是sizeof结构体体变量柔性数组大小用多少开辟多少。  struct st_type {int i;int *a;//柔性数组成员}int main() {printf(%d\n, sizeof(st_type));//输出的是4return 0; }3.柔性数组的使用举例 #include stdio.h #include stdlib.h int main() {int i 0;type_a *p (type_a*)malloc(sizeof(type_a)100*sizeof(int));//在使用前一定要定义这里图方便没有定义p-i 100;for(i0; i100; i){p-a[i] i;} free(p);//动态开辟的内存记得及时释放return 0; } 4.柔性数组的优点 柔性数组是一个结构体的一个成员数组在上面的例子中整个结构体都是在堆上malloc出来的。此时整个结构体都是存储在堆上一块连续的空间内因为数组arr的大小是可以改变的所以就叫柔性数组。但是实际上如果我们把柔性数组成员换成一个指针成员然后通过malloc也是可以动态开辟空间的如下图代码所示 struct st_type {int i;int *arr;//柔性数组成员}int main() {struct st_type* ps (struct st_type*)malloc(sizeof(struct st_type));if(ps NULL){printf(malloc()-%s\n) , strerror(errno));return 1;}ps-arr (int*)malloc(10 * sizeof(int));if(ps-arr NULL){printf(2:malloc()-%s\n) , strerror(errno));return 1;}return 0; } 上面指针arr在malloc后即可当作数组使用。那么我们为什么要引入柔性数组呢原因有以下两点 ①方便内存释放 使用时柔性数组malloc一次free一次不使用柔性数组要malloc两次free两次。如果我们的代码是在一个给别人用的函数中你在里面做了二次内存分配并把整个结构体返回给用户。用户调用free可以释放结构体但是用户并不知道这个结构体内的成员也需要free所以你不能指望用户来发现这个事。所以如果我们把结构体的内存以及其成员要的内存一次性分配好了并返 回给用户一个结构体指针用户做一次free就可以把所有的内存也给释放掉。 ②有利于提高访问速度 连续的内存有益于提高访问速度也有益于减少内存碎片。
http://www.zqtcl.cn/news/720668/

相关文章:

  • 邯郸网站建设效果好广西做网站的公司
  • 网站logo上传营销型网站制作方案
  • 小说网站静态模板站长工具seo综合查询adc
  • 北京响应式网站做logo那个网站
  • 如何申请免费网站空间刚察县wap网站建设公司
  • 哪里有网站推广软件免费推广seo策略方法
  • 阿里云备案网站 网站名称怎么写京icp备案查询
  • 网站开发岗位思维导图alexa排名
  • 自适应网站建设济南济南网站建设公司
  • 巴州网站建设库尔勒网站建设钟爱网络杭州微信网站制作
  • 52做网站南京市住房城乡建设门户网站
  • 网站开发精品课程贵阳市白云区官方网站
  • seo整站优化服务会计培训班一般收费多少
  • 批量网站访问检测怎么做好手机网站开发
  • 深圳网站建设公司哪家比较好shortcodes wordpress
  • 网站内链越多越好嘛可以做3d电影网站
  • 企业网站需求文档微商引流客源最快的方法
  • 交互式网站备案业务网站在线生成
  • 自建网站百度个人网站如何在百度上做推广
  • 如何安装wordpress模板竞价网站做seo
  • 做论坛网站如何赚钱电子商务营销推广
  • 想要自己做一个网站怎么做济宁百度网站建设
  • 海会网络建设网站wordpress刷不出图片
  • 一个人做商城网站网站推广的几个阶段
  • 做国学类网站合法吗html5教程pdf下载
  • 云南省文化馆网站建设二级域名分发平台
  • 网站版面布局结构图网站收录批量查询
  • 网站开发手机模拟器常州到丹阳
  • 淮南医院网站建设班级网站开发报告
  • 东莞营销网站建设哪家好微信api接口