实验九、指针(2)

实验九、指针(2)

ID:20401540

大小:108.00 KB

页数:12页

时间:2018-10-12

实验九、指针(2)_第1页
实验九、指针(2)_第2页
实验九、指针(2)_第3页
实验九、指针(2)_第4页
实验九、指针(2)_第5页
资源描述:

《实验九、指针(2)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验八、指针(二)1.教学教学进程:序号章节名称1§9.4指针与字符串2§9.5指针与函数3§9.6指针数组和多级指针2.考查知识点:指针与字符串,指针作为函数的参数,函数指针,指针函数,指针数组。3.实验目的:(1)掌握指针与字符串的关系。(2)能正确使用指向函数的指针变量和返回指针的函数。(3)了解指向指针的指针的概念及使用方法。4.实验内容:u课外实验题目(90分):如下图所示,本程序由若干个文件组成。其中主函数在文件“main.c”中。其它文件中包含了相应的子程序、变量定义和宏定义。请阅读程序完成题目要求。(1)由于采用了指向函数的指针作为

2、fenzhi()函数的参数,所以在主函数中每个分支只有一条函数调用语句。请在fenzhi()函数中填写caseE:段的相对应程序。(10分)(2)文件“fun4.c”中由条件编译指令分为两个不同的代码段,请分别填写两段代码中的子程序copy_string()的内容,使程序分别完成字符串的复制。(每段10分,共20分)(3)在文件“fun5.c”中,采用返回指针值的函数返回查询数据的地址。请填写子程序search()的内容。(10分)(4)填写程序中的空白,实现内存的管理。具体操作见提示。(每空5分,共50分)序号内容12345678910提示:所谓

3、的自由分配和释放内存,指的是在指定的范围内进行。本题的管理范围是以allocbuf为起始地址,以ALLOCSIZE为长度的空间内进行内存管理。如下图所示,pointers[]为指针数组,其中每一个元素指向开辟的空间首地址。p_size[]存放每一个指针对应的空间的长度。指针allocp永远指向待分配的空间,初始情况下,allocp指向整个空间的首址。添加时在p_size中按照下标顺序查询值为0的元素,说明在pointers中对应的元素还没有指向任何空间,就将该指针指向新开辟的空间,对应的空间长度存在p_size中。删除空间时,对应指针后面的指针都要

4、向前移动,保证再次开辟空间的连续性。被释放的指针对应的长度也要被清除。uu程序代码(题目部分):/*************************main.c*****************************/#include#include"publicFun.h"#include"globalVaria.h"main(){intenter_flag=0;while(1){if(enter_flag==0)enter_flag=display(0,"",title[0],mulu,"");elseif(enter_fl

5、ag==2)break;switch(getchar()){case'D':enter_flag=fenzhi(subject[0],title[1],mulu,mulu1,fun4);break;case'E':enter_flag=fenzhi(subject[1],title[2],mulu,mulu1,fun5);break;case'F':enter_flag=fenzhi(subject[2],title[3],mulu,mulu1,fun6);break;case'G':getchar();enter_flag=display(4,"

6、","","","");break;default:break;}}}/*************************fenzhi()*****************************/intfenzhi(charsubject[],chartitle[],charmulu[],charmulu1[],void(*fun)()){intenter_flag=0;getchar();while(1){if(enter_flag==0)enter_flag=display(1,"",title,"",mulu1);switch(getcha

7、r()){case'R':getchar();enter_flag=display(2,subject,title,"","");break;case'E':case'C':getchar();return0;default:break;}}}/*************************fun4.c*****************************/#include#defineSELECTION1#if(SELECTION)voidcopy_string(charfrom[],charto[]){}voidfun

8、4(){chara[]="Iamateacher.";charb[]="Youareastudent.";printf("

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。