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

局域网网站建设工具服饰网站模板设计

局域网网站建设工具,服饰网站模板设计,湖南健康码,搜索大全引擎1.1前记 也许你从来没有听说过柔性数组这个概念,但是它是确实存在的。 C99中,结构中的最后一个元素允许是未知大小的数组,这就是柔性数组成员。 例如: struct st_type {int i;int a[0]; }; 有些编译器会报错无法编译可以改为&#xff1a…

1.1前记

也许你从来没有听说过柔性数组这个概念,但是它是确实存在的。

C99中,结构中的最后一个元素允许是未知大小的数组,这就是柔性数组成员。

例如:

struct st_type
{int i;int a[0];
};

有些编译器会报错无法编译可以改为:

struct st_type
{int i;int a[];//柔性数组成员
};

1.2柔性数组的特点

  • 结构中的柔性数组成员前面必须至少一个成员。(不然结构体的大小怎么计算?)
  • sizeof返回的这种结构大小不包括柔性数组的内存。

包含柔性数组成员的结构用malloc()函数进行内存的动态分配,而且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。

例如:

typedef struct st_type
{int i;int a[0];
}type_a;
int main()
{printf("%d\n",sizeof(type_a));return 0;
}

1.3柔性数组的使用

//代码1
#include<stdio.h>
#include<stdlib.h>
typedef struct st_type
{int i;int a[0];
}type_a;
int main()
{int i = 0;type_a* p = (type_a*)malloc(sizeof(type_a) + 100 * sizeof(int));p->i = 100;for (i = 0; i < 100; i++){p->a[i] = i;}free(p);return 0;
}

这样柔性数组成员a,相当于获得了100个整型元素的连续空间。

1.4柔性数组的优势

上述的type_a结构也可以设计为下面的结构,也能完成同样的效果。

//代码2
#include <stdio.h>
#include <stdlib.h>
typedef struct st_type
{int i;int* p_a;
}type_a;
int main()
{type_a* p = (type_a*)malloc(sizeof(type_a));p->i = 100;p->p_a = (int*)malloc(p->i * sizeof(int));int i = 0;//业务处理for (i = 0; i < 100; i++){p->p_a[i] = i;}//释放空间free(p->p_a);p->p_a = NULL;free(p);p = NULL;return 0;
}

上述代码1和代码2可以完成相同的功能,但是方法1的实现有两个好处:

第一个好处是:方便内存释放

如果我们的代码是在⼀个给别⼈⽤的函数中,你在⾥⾯做了⼆次内存分配,并把整个结构体返回给⽤⼾。⽤⼾调⽤free可以释放结构体,但是⽤⼾并不知道这个结构体内的成员也需要free,所以你不能指望⽤⼾来发现这个事。所以,如果我们把结构体的内存以及其成员要的内存⼀次性分配好了,并返回给⽤⼾⼀个结构体指针,⽤⼾做⼀次free就可以把所有的内存也给释放掉。

第二个好处是:这样有利于访问速度

连续的内存有益于提高访问速度,也有益于减少内存碎片。

http://www.yayakq.cn/news/512698/

相关文章:

  • 多屏合一网站建设做可直接下单购买的网站
  • 湖南省交通建设质监局网站iframe 网站前台模板
  • 网站备案一天通过成都旅游路线规划
  • 手机网站加百度商桥网络营销的推广方式有哪些
  • 成都网站建设单位app软件开发制作公司电话
  • 唐山制作网站软件广州网站建设找哪里
  • 网站开发 原理哈尔滨模板建站系统
  • 哪个网站做外单出口好商业网站的建设与制作
  • 手机网站建设公设计素材网站能挣钱吗
  • 湖南做网站公司有哪些深圳市在建项目查询
  • 官方网站下载打印机驱动多语言建站系统
  • 安康做网站的公司茂名建站价格
  • 购物网站的推广个人简历可编辑免费
  • asp网站搭建工具中国石油工程建设协会网站
  • 常州外贸网站平台网站建设外包费用
  • 泉州响应式网站建设wordpress 图像相册
  • 上海建设工程质监站网站佳木斯建网站的
  • 潍坊做网站的那家好阿里云建站后台建站
  • 最新微网站建设价格本地生活网免费发信息
  • 微商城网站建设方案网站策划书内容
  • 常熟建设网站wordpress苏醒Grace8
  • 网站快速排名优化价格wordpress手机管理
  • 高端网站开发费用中铁建设集团有限公司是国企吗
  • 重庆短视频制作公司排名天津海外seo
  • 国外做游戏的视频网站有哪些上海本地app推荐
  • 2018年企业网站优化应该怎么做北京网站优化排名推广
  • 网站备案期间怎么做建一个公司网站要多少钱
  • 深圳龙岗淘宝网站建设公司有哪些网店无货源怎么做
  • 网站权重查询接口东莞哪里做网站
  • 网站建设 管理与维护试题网站建设费算办公费吗