c17,动态内存管理与结构体,柔性数组,把字符串转换为整形例题讲解

时间:2021-04-08 13:42:23   收藏:0   阅读:0

1.bss:未初始化区域,bss空间都初始化为零,

   字符串只读区在.data区

  free当进入主函数开始,主函数结束完毕

struct Student * sp2 = (struct Student*)malloc(sizeof(*sp2));  

struct Student * sp3  = (struct Student*)malloc(sizeof(sp3)); 

 第一个对,第二个错,

定义一个指针,指针类型为struct student,malloc实际上分配的是学生的大小,sp2是指针,*sp2是所指之物的大小,20+4+4=28个空间,

sp3是一个指针,空间大小为4,不能满足所需空间。

技术图片next必须加*,否则形成不完整类型,出现无限循环

 

char s_name[20];

strcpy_s(p->s_name,20,"yhping");

字符串不可以直接给数组,需要调用拷贝函数

技术图片

 

单链表结构,p指向wuzheng...,然后指向yhping...,然后置空

数组的用法大开小用;

 2.柔性数组:可伸缩,大小未知的数组

数组的大小声明为0,或者不给出大小,称之为柔性数组

并不计算到结构体大小中,data只作为一个名称作为使用,本身并不占空间,只代表了一个偏移量,代表一个不可修改的地址常量

技术图片

   第一个为柔性数组,字节大小为4.第二个为数组,字节大小为16

 

4.

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!