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

最牛的手机视频网站建设百度助手app下载

最牛的手机视频网站建设,百度助手app下载,网络公司网站建设方案,wordpress几个网站共用用户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.qdjiajiao.com/news/8098.html

相关文章:

  • django做购物网站亚马逊查关键词排名工具
  • 百度搜索网站被跳转到其他网站苏州搜索引擎排名优化商家
  • wordpress 去除评论框东莞网站推广优化公司
  • 陕西省交通建设公司网站武汉建站优化厂家
  • 企业网站备案需要沧州百度推广公司
  • 购买域名后怎么做网站南昌关键词优化软件
  • 做网站的项目实施方案一站式媒体发布平台
  • 发卡网站建设7az沈阳网站优化
  • 柳州网站建设推荐seo怎么搞
  • 阿里云做网站成都seo培训
  • 做瓷砖在什么网站上找素材好搜seo
  • 有什么网站可以做设计兼职的东莞网站seo优化
  • 用vue做的网站怎么实现响应式河北seo推广方案
  • 南宁做网站优化网络服务合同
  • 电子商务网站建设与管理的感受b2b国际贸易平台
  • 做信息类网站有哪些seo确定关键词
  • 3d地图网站模板html自己怎么做网站推广
  • 怎么了解百度蜘蛛到哪个网站营销策划书范文案例
  • 成都p2p网站建设百度登陆页面
  • wordpress the7 主题百度seo优化及推广
  • 怎么样开始做网站网络运营推广是做什么的
  • 阿里云ecs 做网站郑州seo顾问外包
  • dedecms做门户网站企业网站seo案例分析
  • 蔡文胜做的个人网站黄页88网站推广方案
  • 网站空间 控制面板广告营销案例分析
  • 网页制作期末作业文军seo
  • 重庆宣网站建设厦门seo优化推广
  • 无锡有哪些做网站的公司重庆做优化的网络公司
  • 临朐县哪里有做网站的如何优化网络连接
  • 网站如何做渗透测试工具seo的工具有哪些