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

做网站哪个公司可以做哪里有网站开发定制

做网站哪个公司可以做,哪里有网站开发定制,东莞网站(建设信科网络),怎样自己免费做一个网址目录 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.yayakq.cn/news/965489/

相关文章:

  • 如何找人做网站wordpress site
  • 深圳网站建设服务平台图片网站推广
  • 网站内页标题商标注册45类明细
  • 网站建设费用如何收取霸县网站建设
  • 什么网站可以做兼职 知乎化妆品可做的团购网站有哪些
  • 做的比较好的购物网站网站域名跳转怎么做
  • 专业做鞋子的网站吗商贸公司寮步网站建设极致发烧
  • 网站开始开发阶段的主要流程个体工商户是否能够做网站
  • 个人简约网站模板网站域名解析时间
  • 查询网站怎么做的百度广告怎么做
  • 公司内部网站开发怎么自己办网站
  • 推广网站seowordpress point
  • 深圳专业做网站罗伯特清崎说的网络营销是什么
  • 免费网站建设教程视频网络工程师自学难吗
  • 免费制作封面的网站优质的外国网站
  • 四川交投建设招标网站seo怎么优化关键词排名
  • 做网站公司 汉狮网络深圳外贸营销型网站建设
  • 防伪码查询网站怎么做的网站设计公司网站制作费用
  • 网站都是用什么语言写的win7 ftp编辑wordpress
  • 网站建设不开单软件前端开发
  • 百度站长快速收录和生活app下载安装最新版
  • 运城建网站秦皇岛建设里二手房
  • 产品推广策划电子商务网站怎么做seo
  • 旅游政务网站建设方案团购网站建设目的
  • 云南省建设注册考试中心网站客户管理软件免费版
  • 专题网站建设简述网站规划的流程
  • 建设网站需要准备什么资料网站设计免费模板
  • 网站开发前端与后端源代码软件定制系统
  • 著名的网站建设公司青海省建设厅官方网站
  • 永兴房产网站公司装修合同模板