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

庆云网站建设网站设计不包括

庆云网站建设,网站设计不包括,甘肃手机版建站系统价格,南昌网站设计特色#x1f436;博主主页#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍#x1f525;专栏系列#xff1a;线性代数#xff0c;C初学者入门训练#xff0c;题解C#xff0c;C的使用文章#xff0c;「初学」C #x1f525;座右铭#xff1a;“不要等到什么都没有了#xff0c;才下… 博主主页ᰔᩚ. 一怀明月ꦿ  ❤️‍专栏系列线性代数C初学者入门训练题解CC的使用文章「初学」C 座右铭“不要等到什么都没有了才下定决心去做” 大家觉不错的话就恳求大家点点关注点点小爱心指点指点 目录 内存分布 realloc 柔性数组柔性数组又名0长度数组 内存分布 内核空间 用户不能读写 栈区 函数的形参以及局部变量 内存映射段 文件映射动态库匿名映射 堆区 动态开辟的内存malloccallocrealloc 静态区 全局变量 静态变量 代码段 可执行代码/只读常量存放函数体的二进制代码 realloc realloc用于原空间不足继续开辟更大的空间引用头文件为#includestdlib.h realloc的原型 void* realloc (void* ptr, size_t size); void* ptr原空间的首地址 size_t size开辟新空间的大小   注如果ptr为空指针时则他的作用和malloc相同例如 #includestdio.h #includestdlib.h int main() {int *ptr(int *)realloc(NULL,20);//这里就相当于malloc开辟了20个字节例如//int* ptr(int*)malloc(20);for(int i0;i5;i){printf(%d ,ptr[i]);}return 0; }柔性数组柔性数组又名0长度数组 柔性数组的特点 1结构中的柔性数组成员前面必须至少有一个其他成员。 这样创建的柔性数组是正确的 struct student {int n;int arr[];//或者int arr[0] }; 这样创建是绝对不允许的 struct student {int arr[]//如果是柔性数组前面应该还有其他类型的成员 }; 2sizeof返回的这种结构大小不包括柔性数组的内存 3包含柔性数组成员的结构用malloc函数进行内存的动态分配并且分配的内存应该大于结构体的大小以适应柔性数组的预期大小   #includestdio.h #includestdlib.h #includeerrno.h #includestring.h typedef struct student {int n;//0-3char c;//4//8//int arr[0];int arr[];//这里没有指定大小这就是柔性数组 }student; int main() {//2printf(%d\n,(int)sizeof(student));//结果是8//3student* ptr(student*)malloc(sizeof(student)10*sizeof(int));if(ptrNULL){printf(%s\n,strerror(errno));//打印申请失败的原因return 1;}//使用ptr-n100;ptr-cw;for(int i0;i10;i){ptr-arr[i]i;}for(int i0;i10;i){printf(%d ,ptr-arr[i]);}//利用realloc函数调整arr数组的大小student* str(student*)realloc(ptr,sizeof(student)20*sizeof(int));if(strNULL){printf(%s\n,strerror(errno));//打印申请失败的原因return 1;}else{ptrstr;}//释放free(ptr);return 0; } 结构体指针方案不使用柔性数组达到柔性数组的目的 指针方案一 #includestdio.h #includestdlib.h #includeerrno.h #includestring.h typedef struct class {int n;char c;int* arr; }class; int main() {class* ptr(class*)malloc(sizeof(class));int* str(int*)malloc(sizeof(int)*10);if(strNULL){printf(%s\n,strerror(errno));//如果分配失败打印错误信息return 1;}else{ptr-arrstr;}//用realloc调整arr的大小str(int*)realloc(ptr-arr,20*sizeof(int));if(strNULL){printf(%s\n,strerror(errno));return 1;}else{ptr-arrstr;}//释放free(ptr-arr);free(ptr); }指针方案二 #includestdio.h #includestdlib.h #includeerrno.h #includestring.h typedef struct class {int n;char c;int* arr; }class; int main() {class ptr;//创建了一个结构体对象int* str(int*)malloc(sizeof(int)*10);if(strNULL){printf(%s\n,strerror(errno));return 1;}else{ptr.arrstr;}//调整arr的大小str(int*)realloc(ptr.arr,20*sizeof(int));if(strNULL){printf(%s\n,strerror(errno));return 1;}else{ptr.arrstr;}//释放free(ptr.arr);return 0; }总结对比两种方法柔性数组和结构体指针不难发现柔性数组更加简便可以整理出柔性数组有两大优势 1动态开辟的内存比较容易释放 使用柔性数组只需要调用用一次free函数进行释放而使用结构体指针方案一则需要两次调用free函数进行释放这样会导致忘记释放了从而出现内存泄漏的问题使程序更容易出错。 2程序的运行速度更快 柔性数组只动态开辟了一块空间而结构体指针这种方法开辟两块空间。结构体指针这种方法内存碎片比较多程序访问速度有所下降。 如果大家还有不懂或者建议都可以发在评论区我们共同探讨共同学习共同进步。谢谢大家
http://www.w-s-a.com/news/632847/

相关文章:

  • 民制作网站价格株洲企业seo优化
  • 网站建设 岗位职责网站建设百度索引
  • 网站建设的内容下拉网站导航用ps怎么做
  • 怎样做p2p网站海口免费自助建站模板
  • 给企业建设网站的流程图wordpress 添加子菜单
  • 企业网站带新闻发布功能的建站皋兰县建设局网站
  • 国内外做gif的网站wordpress数据库教程
  • 成都建站平台自己做一个网站需要多少钱
  • 景区旅游网站平台建设公司企业网站源码
  • 免费高清网站推荐喂来苏州网络科技有限公司
  • php做的大型网站有哪些备案博客域名做视频网站会怎么样
  • 去哪网站备案吗昭通网站建设
  • flash企业网站源码建筑材料采购网站
  • 网站可以换虚拟主机吗部门做网站优点
  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意