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

网站建设需要掌握哪些知识搭建什么网站比较赚钱

网站建设需要掌握哪些知识,搭建什么网站比较赚钱,新加坡建设局网站,合肥网站建设sina在学习之前#xff0c;我们首先要了解柔性数组是放在结构体当中的#xff0c;知道这一点#xff0c;我们就开始今天的学习吧#xff01; 1.柔性数组的声明 在C99中#xff0c;结构中的最后一个元素允许是未知大小的数组#xff0c;这就叫做柔性数组成员 这里的结构是结构…在学习之前我们首先要了解柔性数组是放在结构体当中的知道这一点我们就开始今天的学习吧 1.柔性数组的声明 在C99中结构中的最后一个元素允许是未知大小的数组这就叫做柔性数组成员 这里的结构是结构体 我们看个代码了解 #define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h//柔性数组的声明typedef struct S {int n;char c;char arr[0];//它就是柔性数组//还有另一种写法就是char arr[],这两种写法在我们vs中都是不会出错的 }S; int main() { //printf(%zd\n, sizeof(S));return 0;} 2.柔性数组的特点 1.结构中的柔性数组成员前面必须至少有一个其他成员 2.sizeof返回的这种结果大小不包括柔性数组的内存 3.包含柔性数组成员的结构用malloc函数进行内存的动态分配并且分配的内存应该大于结构体的大小以适应柔性数组的预期大小 我们可以验证一下 我们求一下这个结构体的大小 typedef struct S {int n;char arr[];//它就是柔性数组 }S; int main() {printf(%zd\n, sizeof(S));return 0; } 运行一下我们发现它求出来结构体的大小是前面整型的大小没有包含这个柔性数组的大小 我们再看一个代码来了解柔性数组的整体特性 typedef struct S {int n;char arr[];//它就是柔性数组 }S; int main() {//未使用这个柔性数组前计算一下这个结构体的总大小和后面使用之后作比较//看看有什么不同printf(%d\n, sizeof(S));//我们为这个结构体成员和柔性数组成员分配动态内存空间S* pc (S*)malloc(sizeof(char) * 10 sizeof(S));if (pc NULL){perror(malloc);return 1;}//开始使用柔性数组pc-n 100;int i 1;for (i 1; i 10; i){pc-arr[i] i;printf(%d , pc-arr[i]);}//如果空间不足我们可以进行增容S* str (S*)realloc(pc,sizeof(S) sizeof(sizeof(char) * 20));if (str NULL){printf(%s\n, strerror(errno));return 1;}pc str;printf(\n);//在这里我们可以求一下现在结构体的大小看它在使用了柔性数组之后//结构体的总大小是否发生了变化printf(%d\n, sizeof(S));//释放空间free(pc);pc NULL;return 0; } 我们运行查看一下结果 我们发现 1.结构体使用柔性数组前后结构体总大小没有发生变化都是4 2.我们使用别的办法也可以达到柔性数组所达到的效果为什么还要存在柔性数组呢 这就引出了我们下一个知识点为什么存在柔性数组 3.为什么存在柔性数组 我们用别的办法实现一下这个柔性数组所实现的功能对比着来看更能理解 typedef struct S {int n;char* arr; }S;int main() {printf(未动态开辟时内存大小%zd\n, sizeof(S));//为整个结构体分配动态内存空间S* pc (S*)malloc(sizeof(S));if (pc NULL){perror(malloc);return 1;}//使用这块空间pc-n 100;//再用malloc为指针arr分配空间pc-arr (char*)malloc(sizeof(char) * 10);if (pc-arr NULL){perror(malloc);return 1;}//使用给arr分配的这块空间int i 0;for (i 0; i 10; i){pc-arr[i] Q;printf(%c , pc-arr[i]);}printf(\n);printf(malloc这块空间后内存大小%zd\n, sizeof(S));//对这块空间进行增容char* ptr (char*)realloc(pc-arr, sizeof(char) * 20);if (ptr NULL){perror(realloc);return 1;}//使用增容后的空间ptr pc-arr;for (i 0; i 10; i){pc-arr[i] L;printf(%c ,pc-arr[i]);}printf(\n);printf(realloc这块空间后内存大小%zd\n, sizeof(S));//释放空间free(pc-arr);pc-arr NULL;free(pc);pc NULL;return 0; } 我们比较一下两种写法它们可以达到一样的效果 但是 柔性数组 1.malloc只需要开辟一次 2.free空间一次 3.开辟的空间是连续的 普通写法 1.malloc两次 2.free两次 3.开辟的空间不一定连续 我们要知道malloc的次数越多越容易处处可能free顺序不对或者忘记free造成内存泄漏同时内存碎片越多没别利用的空间就越多造成空间的浪费。 此时我们就要知道存在即合理柔性数组的存在是有一定的道理的。 接下来我们总结一下柔性数组的好处 4.柔性数组的好处 1.方便内存释放我们在为什么存在柔性数组里已经分析过了 2.有利于提高访问效率 连续的内存有益于提高访问速度也有益于减少内存碎片 好了这就是关于柔性数组的全部知识大家要慢慢感悟咱们下期再见
http://www.hkea.cn/news/14529064/

相关文章:

  • 织梦做的网站打包在dw修改网站没收录
  • 建设银行 钓鱼网站农产品网站建设方案
  • 江门专业网站建设公司创造自己的网站
  • 椒江网站建设公司张家港建网站的公司
  • 如何设计网站的链接厦门seo关键词排名
  • 济南市住建厅官方网站wordpress 新浪图片
  • 开源网站有哪些深圳微信公众平台
  • 科技网站建设 长沙怎么自己做图片
  • 做商城网站系统腾讯企业邮箱免费注册入口
  • 哈尔滨快速建站合作云虚拟主机可以做视频网站不
  • 工信部 网站 邮箱汉口北做网站
  • 长沙有哪个学校可以学网站建设网站底部设计
  • 网站程序开发制作十大品牌珠宝首饰网站模板
  • 建立网站的平台电商平台开发公司
  • 即时聊天wordpress手机app惠州百度seo
  • 苏州优秀网站设计公司网站策划网
  • 创建网站超市甘肃搜索引擎网络优化
  • 改版网站收费百度seo自然优化
  • 邯郸网站建设信息保定建站方案
  • 中国信誉建设网站客户端建站
  • aspx网站 整站抓取中国建设银官方网站
  • 申请建设部门网站的报告做打鱼网站犯法不
  • 中天钢铁 网站建设中国建设银行上海市分行网站
  • 网站主体负责人和网站负责人wordpress背景音乐插件
  • 怎样免费建个人网站做印刷厂网站
  • 品牌网站建设公司哪家好做网站原型图用什么软件
  • xml网站模板网页建立站点
  • 吉浦网站建设汕头网站建设模板制作
  • 可以做免费广告的网站网站开发支付宝二维码支付
  • 拼多多网站策划书企业注册信息查询网站