- 1
- 0
- 约2.13千字
- 约 10页
- 2018-12-02 发布于浙江
- 举报
《高级语言程序设计学课件》第11章1
* 第11章 指针高级应用 * 动态内存分配 实现按需分配。根据程序的实际需要进行内存的分配和释放。以前的都是按计划分配(如数组必须指定长度) 动态内存分配相关函数(stdlib.h中) malloc(size):分配size个字节的存储空间 free(p) :释放指针p指向的之前已分配的空间 * 动态分配函数 malloc函数 void * malloc (unsigned int size); 作用:在内存的动态存储区中分配一个长度为 size的连续空间 返回值:成功,返回指向分配域起始地址的指针; 否则,返回空指针(NULL) 例如,由用户从键盘输入来确定一个数组的长度。 int n, *p; printf(”请输入数组的长度”); scanf(“%d”,n); p=(int *) malloc(n*4); if(p==NULL) printf(”分配失败”); else printf(”分配成功”); …… * free函数 void free (void * p); 作用:释放p指向的内存区,使这部分内存区能被其他变量使用。P是调用malloc时返回的值。 返回值:无返回值 动态释放函数 int n, *p; printf(”请输入数组的长度”); scanf(“%d”,n); p=(int *) malloc(n*4); if(p==NULL) printf(”分配失败”); else printf(”分配成功”); …… free(p); * 用结构体处理链表 链表概述 一种重要的数据结构。可以动态地进行存储分配一种结构 优点:插入、删除某个结点容易,不用移动数据。 例建立一个如下图所示的由3个学生数据简单链表 99101 89.5 num score next 99103 90 99107 85 NULL head 结点的结构 struct student { int num; float score; struct student *next; } * 建立链表 例 写一个建立链表的函数create struct student * create(int n) //创建有n个结点的单链表 { struct student *p, *q, *head; int i; p=(struct student *)malloc(sizeof(struct student )); …… //输入学号和成绩 head=p; for(i=0;in-1;i++) { q=(struct student *)malloc(sizeof(struct student )); …… //输入学号和成绩 p-next=q; p=q; } p-next=NULL; return head; } 99101 89.5 99103 90 99107 85 NULL head * 输出链表 例 写一个输出链表的函数print void print(struct student *head) { struct student *p=head; while(p!=NULL) { printf(“%d %5.1f\n”,p-num, p-score); p=p-next; } } 99101 89.5 99103 90 99107 85 NULL head p p p P=NULL * 对链表的删除 分析 A B C D E 关键问题: 找到要删除的点,设为p2 结点p2的前一个结点p1 p2 p1 p1-next = p2-next * 删除某个学生 struct student * del(struct student * head,int num) //删除学号为num的学生 { struct student *p1, *p2=head; if(head!=NULL) { while(p2-num!=num p2-next!=NULL) { p1=p2; p2=p2-next; } if(p2-num==num ) //找到 { if(p2==head) head=head-next; else p1-next=p2-next; free(p2); } return head; } 99101 89.5 99103 90 99107 85 NULL he
您可能关注的文档
- 《高中地理 占凯伦 教学必修二》1.1人增长模式.ppt
- 《高中地理 占凯伦 教必修二》3.1产业活动的区位条件和地域联系.ppt
- 《高中政治教课件-于海》社会历史的主体.ppt
- 《高中地理 占凯伦 教学必修三》1.认识大洲—亚洲(2节).ppt
- 《高中地理 占凯伦 教学必修二2.1 城市空间结构3.ppt
- 《高中地理 占凯伦 教学必修二》4.4协人地关系的主要途径.ppt
- 《高中数学教学件》函数的奇偶性.ppt.ppt
- 《高中地理 占凯伦 教学必修二》3.2.2农业区位因素农业地域类型.ppt
- 《高中地理 占凯伦 教学必三》1.1区域的基本含义.ppt
- 《高中数学教学课》1.2.2集合的运算2.ppt
最近下载
- 2026开封市第三届职业技能大赛汽车技术(世赛选拔)项目技术工作文件.pdf VIP
- 站用交直流电源系统技术规范第3部分:直流电源系统.pdf VIP
- 2024年初级会计职称《经济法基础》精讲课件.pptx VIP
- 2025年湖南机电职业技术学院单招职业技能测试题库及参考答案.docx VIP
- 2025年浙江机电职业技术学院单招(语文)测试试卷.docx VIP
- 泰国和中国合同模板(3篇).docx VIP
- 2025年湖南机电职业技术学院单招职业技能测试题库参考答案.docx VIP
- (2026春新版)人教版二年级数学下册《第三单元 万以内数的认识》教案.docx VIP
- 四年级小学下书法设计教案.doc VIP
- 烟气余热利用的热管式换热器设计(毕业论文).docx VIP
原创力文档

文档评论(0)