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

最牛的手机视频网站建设个人网络销售平台

最牛的手机视频网站建设,个人网络销售平台,投资集团网站建设方案,民政部门网站建设方案C99中,结构体中最后一个元素允许时未知大小的数组,这就叫做柔性数组成员。 vs编译器也支持柔性数组。 之所以把柔性数组单独列出,是因为: 1、柔性数组是建立在结构体的基础上的。 2、柔性数组的使用用到了动态内存分配。 这使得柔…

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

vs编译器也支持柔性数组。

之所以把柔性数组单独列出,是因为:

1、柔性数组是建立在结构体的基础上的。

2、柔性数组的使用用到了动态内存分配。

        这使得柔性数组不能单独的放在其他两篇文章当中,因此本文较为剪短,只介绍柔性数组这一个概念。

柔性数组的声明:

1、一定是在结构体中。

2、柔性数组前面一定要有 其他成员。

typedef struct s
{int i;int a[0];//柔性数组成员
}type_a;//若编译器其无法通过,则可以写为:
typedef struct st_type
{int i;int a[];//柔性数组成员
}type_a;
柔性数组的特点:

1、结构体中的柔性数组成员前必须至少有一个其他成员。

2、sizeof返回的这种结构体的大小不包括柔性数组的内存。

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

struct S
{int n;int arr[];//柔性数组成员
};//柔性数组成员和int*型成员类似
struct S
{int n;int* arr;
};

异:

1、柔性数组只需要一次malloc就可以完成结构体成员和数组的创建。

2、int*成员需要两次malloc来开辟,两次free来释放。

同:

1、柔性数组和int*成员两个都需要malloc来开辟空间、free释放。

柔性数组的使用
int main()
{struct S* ps = (struct S*)malloc(sizeof(struct S) + 40);if (ps == NULL){return 1;}ps->n = 100;int i = 0;for (i = 0; i < 10; i++){ps->arr[i] = i;}for (i = 0; i < 10; i++){printf("%d ", ps->arr[i]);}//调整大小struct S* ptr = (struct S*)realloc(ptr, sizeof(struct S) + 80);if (ptr != NULL){ps = ptr;ptr = NULL;}//释放free(ps);//只需要一次释放ps = NULL;return 0;
}
 int*成员的使用
int main()
{//创建struct S* ps = (struct S*)malloc(sizeof(struct S));//第一次mallocif (ps == NULL){//...return 1;}ps->n = 100;ps->arr = (int*)malloc(40);//第二次mallocif (ps->arr == NULL){//..报错return 1;}//使用int i = 0;for (i = 0; i < 10; i++){ps->arr[i] = i;}for (i = 0; i < 10; i++){printf("%d ", ps->arr[i]);}//扩容int* ptr = (int*)realloc(ps->arr, 80);if (ptr == NULL){return 1;}ps->arr = ptr;ptr = NULL;//释放//两次释放free(ps->arr);free(ps);return 0;
}

1、malloc的次数越多,free的次数越多,越容易造成内存泄漏。

2、malloc的次数越多,造成的内存碎片就越多,程序的性能就越低。

柔性数组的优势
  1. 方便内存的释放。
  2. 连续的内存能提高访问速度

        柔性数组只需要释放一次,不易产生内存泄漏。malloc一次开辟的空间是连续的,对内存的访问速度更高。

        一个结构体中只允许存在一个柔性数组。

 

http://www.mmbaike.com/news/54624.html

相关文章:

  • 阿里云服务器可以做多少个网站百度关键词优化是什么意思
  • 做内贸哪个网站好市场调研报告范文模板word
  • 苹果cms网站建设职业培训机构管理系统
  • 网站开发工程师薪资巨量引擎app
  • 企业网站建站之星seo课程简介
  • 嘉兴响应式网站2021友情链接qq群
  • 做二手物资哪个网站好百度开放平台
  • 广西网站建设软件推广seo培训价格
  • 上海电子商务网站开发广州网站设计建设
  • 网红营销网站的优化公司
  • 水果网站建设方案书seo咨询邵阳
  • 宁波企业网站seo天津网站建设技术外包
  • 毕业设计做系统网站seo技术外包公司
  • 想在百度做网站aso100官网
  • 翻译网站素材今日nba数据帝
  • 关注公众号领红包深圳seo优化公司哪家好
  • 简述网站的建设流程图河南省疫情最新情况
  • 图文可以做网站设计吗国外网站推广平台有哪些
  • 商标转让合同肇庆seo按天计费
  • 通付盾 建设公司网站巧克力软文范例200字
  • 绿色家园网站怎么做兰州seo新站优化招商
  • 做问卷网站卫星电视安装视频
  • 汕头做网站优化的公司下载百度搜索
  • wordpress css没用了河南网站seo
  • 前端个人网站模板厦门seo外包服务
  • 做网站视频图片加载不出来服务推广软文
  • 乌鲁木齐做网站有哪些公司南宁百度seo排名公司
  • 江西建设工程信息网站爱站网长尾关键词挖掘工具下载
  • 在网上哪个网站可以做兼职手机百度高级搜索
  • 网站如何做seo优化教程广州的百度推广公司