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

做门票售卖网站大型网站建设建设公司排名

做门票售卖网站,大型网站建设建设公司排名,杭州网站建设seo优化,简述什么是seo柔性数组和C语言内存划分 1. 柔性数组1.1 柔性数组的特点#xff1a;1.2 柔性数组的使用1.3 柔性数组的优势 2. 总结C/C中程序内存区域划分 1. 柔性数组 也许你从来没有听说过柔性数组#xff08;flexible array)这个概念#xff0c;但是它确实是存在的。 C99 中#xff… 柔性数组和C语言内存划分 1. 柔性数组1.1 柔性数组的特点1.2 柔性数组的使用1.3 柔性数组的优势 2. 总结C/C中程序内存区域划分 1. 柔性数组 也许你从来没有听说过柔性数组flexible array)这个概念但是它确实是存在的。 C99 中结构中的最后⼀个元素允许是未知大小的数组这就叫做『柔性数组』成员。 例如 typedef struct st_type {int i;int a[0];//柔性数组成员 }type_a;有些编译器会报错⽆法编译可以改成 typedef struct st_type {int i;int a[];//柔性数组成员 }type_a;1.1 柔性数组的特点 结构中的柔性数组成员前面必须至少⼀个其他成员。sizeof 返回的这种结构大小不包括柔性数组的内存。包含柔性数组成员的结构⽤malloc ()函数进行内存的动态分配并且分配的内存应该大于结构的大小以适应柔性数组的预期大小。 #include stdio.h struct St {int n;int arr[0]; };int main() {printf(%zd\n, sizeof(struct St));return 0; }运行结果如图: 1.2 柔性数组的使用 #include stdio.h #include stdlib.h struct St {char c;int n;int arr[0]; };int main() {struct St* ps (struct St*)malloc(sizeof(struct St) 10 * sizeof(int));if (ps NULL){perror(malloc);return 1;}ps-c w;ps-n 100;int i 0;for (i 0; i 10; i){ps-arr[i] i;}//数组空间不够struct St* ptr (struct St*)realloc(ps, sizeof(struct St) 15 * sizeof(int));if (ptr ! NULL){ps ptr;}else{perror(realloc);return 1;}//...继续使用for (i 10; i 15; i){ps-arr[i] i;}for (i 0; i 15; i){printf(%d , ps-arr[i]);}printf(\n);printf(%d\n, ps-n);printf(%c\n, ps-c);//释放free(ps);ps NULL;return 0; }运行结果如图: 1.3 柔性数组的优势 我们也可以模拟实现柔性数组的效果,代码如下: #include stdio.h #include stdlib.h typedef struct St {char c;int n;int* arr; }st; int main() {st* ps (st*)malloc(sizeof(st));if (ps NULL){perror(malloc);return 1;}ps-c w;ps-n 100;ps-arr (int*)malloc(10 * sizeof(int));if (ps NULL){perror(malloc);return 1;}int i 0;for (i 0; i 10; i){ps-arr[i] i;}//扩容int* tmp (int*)realloc(ps-arr, 15 * sizeof(int));if (tmp ! NULL){ps-arr tmp;tmp NULL;}else{perror(realloc);return 1;}//使用for (i 10; i 15; i){ps-arr[i] i;}for (i 0; i 15; i){printf(%d , ps-arr[i]);}printf(\n);printf(%d\n, ps-n);printf(%c, ps-c);//释放free(ps-arr);ps-arr NULL;free(ps);ps NULL;return 0; }运行结果如图: 上述 代码1 和 代码2 可以完成同样的功能但是 方法1 的实现有两个好处 第一个好处是方便内存释放 如果我们的代码是在⼀个给别⼈⽤的函数中你在里面做了⼆次内存分配并把整个结构体返回给用户。用户调用free可以释放结构体但是用户并不知道这个结构体内的成员也需要free所以你不能指望用户来发现这个事。所以如果我们把结构体的内存以及其成员要的内存⼀次性分配好了并返回给用户⼀个结构体指针用户做⼀次free就可以把所有的内存也给释放掉。 第二个好处是这样有利于访问速度. 连续的内存有益于提⾼访问速度也有益于减少内存碎片。 2. 总结C/C中程序内存区域划分 C/C程序内存分配的几个区域 栈区stack在执行函数时函数内局部变量的存储单元都可以在栈上创建函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中效率很高但是分配的内存容量有限。 栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等。堆区heap⼀般由程序员分配释放 若程序员不释放程序结束时可能由OS回收 。分配方式类似于链表。数据段静态区static存放全局变量、静态数据。程序结束后由系统释放。代码段存放函数体类成员函数和全局函数的二进制代码。
http://www.zqtcl.cn/news/235591/

相关文章:

  • 枣阳网站建设吧yw最新域名备案查询
  • 西安知名网站建设公司什么网站可以分享wordpress
  • ugc网站开发2022恢复线下教学通知
  • 网站界面尺寸珠海网站建设制作哪家专业
  • 上海闸北城市建设有限公司网站想学设计没有基础怎么办
  • 免费微网站哪个好用在线网页代理浏览免费
  • 广州建设专业网站寻找做项目的网站
  • 湛江网站建设方案服务卖wordpress主题
  • 扬州做网站的网络公司wordpress设置登录背景图片
  • 有哪些好的网站建设移动网站建设解决方案
  • 江苏网站建设公司排名高校门户网站建设问题
  • 网站怎么加关键词视频网站程序
  • 建设网站需要的人员及资金建设一个网站的具体流程
  • 北京长空建设有限公司网站网站开发制作培训学校
  • 哪些网站可以免费做推广呢o2o营销模式
  • 注册网站的流程南京今天的最新消息
  • 做网站的没有进项票怎么办张家口市一建公司官网
  • 建设网站的本质智慧团建手机版
  • 嘉兴网站建设有前途吗沈阳男科医院排名10强名单公布
  • 手机网站变灰17种新型商业模式
  • 图书网站开发需求文档模板做网站现在用什么语言
  • 创建网站主题在哪里接单赚钱平台
  • 企业做网站的流程权威发布新闻的含义
  • 国外大型购物网站桂林视频网站制作
  • 平度那里有做网站的网站设计技术入股
  • 张家港专业做网站网站设计与建设ppt
  • 香奈儿网站设计分析网站建设新闻发布注意事项
  • 建设网站策划南京网站开发建设
  • 哪些网站可以做任务挣钱如何查询企业电话号码
  • 福田网站 建设深圳信科手机 网站制作