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

东莞外贸网站郑州百度seo关键词

东莞外贸网站,郑州百度seo关键词,浅谈企业网站建设的目标,wordpress自动注册目录 1.柔性数组 2.柔性数组的特点 3.柔性数组的使用 4.柔性数组的优势 1.柔性数组 C99 中,结构体中的最后一个元素允许是未知大小的数组,这就叫做『柔性数组』成员。 例如: struct S {char c;int n;int arr[];//柔性数组 }; struct …

目录

1.柔性数组

2.柔性数组的特点 

3.柔性数组的使用 

4.柔性数组的优势 


1.柔性数组

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

struct S
{char c;int n;int arr[];//柔性数组
};
struct S
{char c;int n;int arr[0];//柔性数组
};

有些编译器支持a[0]这种写法,有些编译器支持a[ ]这种写法,具体取决于编译器。


2.柔性数组的特点 

  • 结构体中的柔性数组成员前面必须至少有一个其他成员
  • sizeof 返回的这种结构大小不包括柔性数组的内存
  • 包含柔性数组成员的结构用malloc 函数进行内存的动态分配,并且分配的内存应该大于结构体的大小,以适应柔性数组的预期大小。

例如:

#include<stdio.h>
struct S
{int n;int arr[0];//柔性数组
};
int main()
{printf("%zd\n", sizeof(struct S));return 0;
}

运行结果:


3.柔性数组的使用 

代码1:结构体里放数组

#include<stdio.h>
#include<stdlib.h>
struct S
{int n;int arr[0];//柔性数组
};
int main()
{//期望数组可以存放5个元素struct S* ps=(struct S*)malloc(sizeof(struct S) + 5 * sizeof(int));if (ps == NULL){perror("malloc");return 1;}ps->n = 100;int i = 0;for (i = 0; i < 5; i++){ps->arr[i] = i;}//调整空间//期望数组可以存放10个元素struct S* ptr=(struct S*)realloc(ps, sizeof(struct S) + 10 * sizeof(int));if (ptr != NULL){ps = ptr;}//使用//释放free(ps);ps = NULL;return 0;
}

通过realloc函数调整空间使数组变大变小,从而使柔性的特点更加鲜明,也不难想到它放在结构体中最后一个元素的原因。 

内存窗口:


4.柔性数组的优势 

代码2:结构体里放指针

#include<stdio.h>
#include<stdlib.h>
struct S
{int n;int* arr;
};
int main()
{struct S* ps = (struct S*)malloc(sizeof(struct S));if (ps == NULL){perror("malloc");return 1;}ps->arr =(int*) malloc(5 * sizeof(int));if (ps->arr == NULL){perror("malloc");return 1;}//使用ps->n = 100;int i = 0;for (i = 0; i < 5; i++){ps->arr[i] = i;}//调整数组大小int*ptr =(int*)realloc(ps->arr, 10 * sizeof(int));if (ptr != NULL){ps->arr = ptr;}//使用//释放  注意:释放两块空间的先后顺序!free(ps->arr);ps->arr = NULL;free(ps);ps = NULL;return 0;
}

 

注意:释放两块空间的先后顺序!如果先释放ps指向的内存空间,就找不到arr的值了,导致arr指向的内存空间无法释放。所以,要先释放arr指向的数组,再释放ps指向的内存。

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

1.方便内存释放 

代码2里面做了二次内存分配,结构体内的成员也需要free,用户需要做两次free把内存释放掉,并且需要注意释放内存的顺序,而代码1用户做一次free就可以把所有的内存给释放掉。

2.有利于提高访问速度

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


http://www.hkea.cn/news/878973/

相关文章:

  • 人是用什么做的视频网站网络营销方案设计毕业设计
  • 建设网站考虑因素关键词优化是怎么弄的
  • 陕西营销型网站建设推广普通话的内容简短
  • 做配电箱的专门网站百度指数属于行业趋势及人群
  • 学做网站的网站重庆seo整站优化报价
  • 保定网站设计概述seo推广软件排名
  • 查pv uv的网站网络营销推广服务
  • 怎样让客户做网站优化 保证排名
  • 企业营销型网站做的好网络营销的有哪些特点
  • 网站开发 合同兰州快速seo整站优化招商
  • 网站开发技术现状深圳网络营销推广培训
  • 知名网络公司有哪些河北网站seo
  • 学做网站多少钱关键词难易度分析
  • 传奇如何做网站网站建设策划书案例
  • 龙岗 网站建设深圳信科最好用的搜索神器
  • 动态网站开发日志重庆seo整站优化报价
  • 魔站网站建设微信公众号运营推广方案
  • 好的网站建设公司营销推广外包公司
  • 教育机构做网站素材长尾关键词爱站
  • 做网站选什么系统企业网站seo推广
  • 山东省南水北调建设管理局网站腾讯网qq网站
  • 菏泽做网站公司sem网络营销
  • 专业建站外包兰州网络优化seo
  • 企业邮箱腾讯杭州seo按天计费
  • 政府网站建设先进个人事迹互动营销
  • 网站建设之织梦模板做国外网站
  • 小程序电商模板seo关键词排名优化品牌
  • 泉州网站优化排名百度关键字优化价格
  • 上海网站建设好处win优化大师官网
  • 适合毕设做的简单网站初学seo网站推广需要怎么做