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

北京建设工程质量总站网站如何做贷款网站推广

北京建设工程质量总站网站,如何做贷款网站推广,烟台网站建设在哪,济南建设网站哪里好柔性数组从C99开始支持使用 1.柔性数组的概念 概念#xff1a; 结构体中#xff0c;结构体最后一个元素允许是未知大小的数组#xff0c;这就叫[柔性数组]的成员 struct S {int n;char arr[]; //数组大小未知(柔性数组成员) }; 柔性数组的特点#xff1a; 结构体中柔性…柔性数组从C99开始支持使用 1.柔性数组的概念 概念 结构体中结构体最后一个元素允许是未知大小的数组这就叫[柔性数组]的成员 struct S {int n;char arr[]; //数组大小未知(柔性数组成员) }; 柔性数组的特点 结构体中柔性数组成员前必须至少有一个其他成员 sizeof返回的这种结构大小不包括柔性数组的内存 struct S {int n;char arr[]; }; int main() { printf(%zu\n, sizeof(struct S);); //4return 0; } 由图可知sizeof计算时不会包含柔性数组的大小 2.如何给柔性数组开辟空间呢 如果结构体中有柔性数组那么系统应该这么帮结构体开辟空间 怎样使用 #include stdio.h #include stdlib.htypedef struct S {int n;char arr[]; }S;int main() {//sizeof(char)*10 根据需求改变,柔性数组就是可变数组S* ptr (S*)malloc(sizeof(S) sizeof(char) * 10);if (ptr NULL){perror(S::malloc);return 1;}//ptr-n 4;int i 0;for (i 0; i 10; i){ptr-arr[i] a;}for (i 0; i 10; i){printf(%c , ptr-arr[i]);}// free(ptr);// ptr NULL;//增容S* pc (S*)realloc(ptr, sizeof(S) sizeof(char) * 20);if(pc NULL){perror(S::realloc);return 1;}else{ptr pc;}free(ptr);ptr NULL; return 0; }3.如果我们给柔性数组申请了动态内存会不会改变结构体大小 不会 #include stdio.h #include stdlib.htypedef struct S {int n;char arr[]; }S;int main() {//sizeof(char)*10 根据需求改变,柔性数组就是可变数组S* ptr (S*)malloc(sizeof(S) sizeof(char) * 10);if (ptr NULL){perror(S::malloc);return 1;}printf(%zu, sizeof(S));free(ptr);ptr NULL;return 0; } 运行结果 形式如图所示 可以看到申请了空间之后还是4字节 包含柔性数组的结构体用malloc()函数进行内存的动态分配并且分配的内存大小应该大于结构体的大小以适应柔性数组的预期大小 4.使用字符型指针代替柔性数组 typedef struct S {int n;char* str; }S;int main() {printf(%zu, sizeof(S));return 0; } 运行结果 进行代替 #include stdio.h #include stdlib.htypedef struct S {int n;char* str; }S;int main() {S* ptr (S*)malloc(sizeof(S));if (ptr NULL){perror(malloc);return 1;}ptr-n 4;ptr-str (char*)malloc(sizeof(char) * 10);if (ptr-str NULL){perror(ptr-str::malloc);return 1;}int i 0;for (i 0; i 10; i){ptr-str[i] a;}for (i 0; i 10; i){printf(%c , ptr-str[i]);}//增容char* pc (char*)realloc(ptr-str, sizeof(char) * 20);if(pc ! NULL){ptr-str pc;}else{perror(pc::realloc);return 1;}//释放顺序不要弄反也可以先释放pc//如果先释放ptr,ptr-str就没有了free(ptr-str);ptr-str NULL;free(ptr);ptr NULL;return 0; } 这个形式如图 5.柔性数组的好处 虽然用char* str也可以实现但是有弊端 使用柔性数组的好处 -1.malloc 只需要使用一次 -2.free 只需要使用一次 -3.空间是连续的 与char* str相比 不容易出错 内存碎片少空间利用率高 效率高(访问速度相对快)
http://www.ho-use.cn/article/10822384.html

相关文章:

  • 黑群晖建设个人网站深圳2024新冠最新情况
  • php做数据网站网业端云服务
  • 做汽车团购网站html做的网站图片横着摆放
  • 基于wordpress个人博客网站论文做网站视频用哪个视频编辑软件
  • 上海嘉定网站市场营销八大营销模式
  • 汕头网站专业制作外贸网站是什么意思
  • 义乌网站建设优化排名开个网站卖机器怎么做
  • 网站改版提交技术支持 沧州网站建设
  • 男女做那个的网站是什么找做玻璃的网站
  • 东莞市长安网站建设公司jsp做门户网站
  • 简单的app开发制作南昌网站seo
  • 演出票务网站建设福建住房城乡建设部网站
  • wordpress个人博客网站游戏开发软件工具
  • 杭州网站排名服务全国十大网站设计工作室
  • 山东省建设厅举报网站wordpress安装图片不显示不出来
  • 个人做电梯网站网站建设与发布需要什么
  • 荣县规划和建设局网站官方网站建设成果
  • 沧州市做网站如何免费自学网站建设
  • 包小盒设计网站申请免费网站
  • 网站开发 犯法网站开发费用清单
  • 桂林相关网站扬中论坛最新
  • 网页设计国外设计欣赏网站最赚钱的小型加工厂
  • 深圳做网站公司地点山东省建设工程信息网官网
  • 网站域名缴费高端网站建设 企业网站建站
  • 大连网站开发乛薇阿里企业邮箱怎么样
  • 珠海做网站公司搭建 wordpress 简书
  • 做一个小程序需要多少钱?seo发包软件
  • 企业网站建设中期报告模板wordpress在哪
  • 如何建立一个私人网站做电子商务网站价格
  • 西安企业网站制作试描述一下网站建设的基本流程图