欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    【教学课件】第四章内存管理接口.ppt

    • 资源ID:80438873       资源大小:408.97KB        全文页数:19页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【教学课件】第四章内存管理接口.ppt

    第四章内存管理接口王兴隆一月 23本章内容malloccallocfreemmapmunmapmemsetmemcpymemmovememcmpmemchr内存控制内存控制内存操作内存操作malloc函数表头文件#include (或malloc.h)函数原型void*malloc(size_t size)函数功能配置内存空间函数输入malloc()用来配置内存空间,其大小由指定的size决定。函数返回值若配置成功则返回一指针,失败则返回NULL。相关函数calloc、freecalloc函数表头文件#include(或malloc.h)函数原型void*calloc(size_t nmemb,size_t size);函数功能配置内存空间函数输入calloc()用来配置nmemb个相邻的内存单位,每一单位的大小为size,并返回指向第一个元素的指针。在利用calloc()配置内存时会将内存内容初始化为0。函数返回值 若配置成功则返回一指针,失败则返回NULL。相关函数malloc,free free函数表头文件#include(或malloc.h)函数原型void free(void*ptr)函数功能释放原先配置内存空间函数输入参数ptr为指向先前由malloc()、calloc()返回的指针。返回值若配置成功则返回一指针,失败则返回NULL。相关函数malloc,calloc 范例4.1#include#includevoid main()int*pa;int*pb;int i;pa=(int*)malloc(sizeof(int)*5);if(pa=NULL)exit(1);for(i=0;i 5;i+)printf(“%d ”,pai);/继续 printf(“n%d”,pa);free(pa);printf(“%dn”,pa);pa=NULL;pb=(int*)calloc(5,sizeof(int);for(i=0;i 5;i+)printf(“%d ”,pbi);free(pb);pb=NULL;4.1运行结果mmap函数munmap函数表头文件#include#include函数原型 int munmap(void*start,size_t length);函数功能 取消内存映射函数输入 munmap()用来取消参数start所指的映射内存起始地址,参数length则是内存大小。当进程结束或利用exec相关函数来执行其它程序时,映射内存会自动解除。返回值如果解除映射成功返回0,否则返回1 相关函数 mmap范例4.2#include#include#include#include#include void main()/利用mmap()来读取文件内容 int fd;void*start;struct stat sb;fd=open(“/home/wxlong/OS/memory/test.txt”,O_RDONLY);/打开文件 fstat(fd,&sb);/获取文件大小 start=mmap(NULL,sb.st_size,PROT_READ,MAP_PRIVATE,fd,0);if(start=MAP_FAILED)/判断映射是否成功 return;printf(%s,start);munmap(start,sb.st_size);/解除映射 close(fd);memset函数表头文件#include函数原型 void*memset(void*s,int c,size_t n);函数功能 将一段内存空间填入某值 函数输入 memset()会将参数s所指的内存区域前n个字节以参数c填入,然后返回指向s的指针。返回值返回指向s的指针。特别说明 参数c虽声明为int,但必须是unsigned char,所以范围在0到255之间。范例4.3#include#include void main()char s5;memset(s,A,sizeof(s);s4=0;printf(%sn,s);输出结果:AAAAmemcpy函数表头文件#include函数原型 void*memcpy(void*dest,const void*src,size_t n);函数功能 拷贝内存内容函数输入 memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。返回值返回指向dest的指针。特别说明 指针src和dest所指的内存区域不可重叠。memmove函数表头文件#include函数原型void*memmove(void*dest,const void*src,size_t n);函数功能拷贝内存内容函数输入memmove()与memcpy()作用相同,并且允许src和dest所指区域重叠,不过效率略慢。memcmp函数表头文件#include函数原型 int memcmp(const void*s1,const void*s2,size_t n);函数功能 字符串比较函数输入 memcmp()用来比较s1和s2所指的内存区间前n个字符。返回值若参数s1和s2所指的内存内容都完全相同则返回0值。s1的ASCII码序大于s2则返回大于0的值。s1若小于s2则返回小于0的值。memchr函数表头文件#include函数原型 void*memchr(const void*s,int c,size_t n);函数功能 字符查找函数输入 memchr()从头开始搜寻s所指的内存内容前n个字节,直到发现第一个值为c的字节,则返回指向该字节的指针。返回值如果找到指定的字节则返回该字节的指针,否则返回0。实验四C语言的realloc函数原型为void*realloc(void*p,int newsize),它可以对给定的指针所指的空间进行扩大或者缩小,其工作原理可简单描述为:1、realloc申请newsize大小的空间;2、将p中的信息拷贝到新申请的空间中;3、将p原来所指的空间释放4、返回新申请的空间的首地址;根据上述工作原理,编写my_realloc函数模拟realloc。注意:my_realloc函数的参数可能与realloc不同,请根据需要自己设计my_realloc的参数评价标准1、my_realloc需要完成如下功能:可以实现空间的扩大和缩小;失败时,返回NULL,原内存不发生改变;传入的指针为NULL时,相当于malloc函数;newsize=0时,相当于free函数。2、实际调用realloc函数时,若newsize比原指针所指空间小,则返回的指针与原指针地址相同;若newsize比原指针所指空间大,返回的指针也有可能与原指针地址相同,请解释原因?谢谢大家!谢谢大家!

    注意事项

    本文(【教学课件】第四章内存管理接口.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开