欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    C语言_第15章.ppt

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

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

    C语言_第15章.ppt

    第十五章 内存管理,第十五章 内存管理,15.1 内存组织形式 15.2 内存管理 15.3 内存丢失 15.4 实战练习,本章学习内容,15.1 内存组织形式,程序运行前,需要先被装载到内存中,内存组织形式分为4个逻辑段 1. 可执行代码 2. 静态数据:可执行代码和静态数据存储在内存的固定位置 3. 动态数据:程序请求中动态分配的内存,也就是堆 4. 栈:局部数据对象,函数参数以及调用函数和被调用函数的联系,15.1 内存组织形式,在内存存储空间中,用于程序动态分配和释放的内存块称为自由存储空间,通常称为堆 堆允许程序在运行时动态的申请内存空间 malloc()函数从堆中分配内存 free()函数将内存释放到堆,15.1 内存组织形式,栈从数据结构角度来说,是一个后进先出的压入弹出式数据结构,包括栈顶指针和栈底指针 系统中的栈空间是系统用来自动处理的内存空间,程序中的局部对象、函数参数以及调用函数和被调用函数的联系,都存放在栈中,15.2 内存管理函数,15.2.1 malloc()函数 功能:在内存中动态的分配一块内存空间 形式:void * malloc(unsigned int size); /*size是分配内存块大小(字节)*/ 例如: int *p; p = (int *)malloc(sizeof(int);,15.2 内存管理函数,15.2.2 calloc()函数 功能:在内存中分配n个长度为size字节的连续的内存空间 形式:void * calloc(unsigned int n, unsigned int size); 例如: int *arr; arr = (int *)calloc(5, sizeof(int);,15.2 内存管理函数,15.2.3 realloc()函数 功能:更改已经配置的内存空间,使指针重新指向一个内存空间 形式:void * realloc(void *ptr, size_t size); 例如: double *p = (double *)malloc(sizeof(double); int *q = realloc(p, sizeof(int);,15.2 内存管理函数,15.2.4 free()函数 功能:释放内存空间 形式:void free(void *ptr); 例如: free(p);,15.3 内存丢失,使用malloc()函数、calloc()函数等动态分配内存空间后,需要使用free()函数释放内存空间。如果内存不进行释放会造成内存泄漏,从而最终消耗完所有的内存,导致系统崩溃,15.3 内存丢失,例如: p = (int *)malloc(sizeof(int); q = (int *)malloc(sizeof(int); 这两行代码分别分配了两块内存,如果进行如下操作。 p = q; 将q指向的内存地址赋给p,这个时候就会造成p原来指向的内存块丢失,因为此时没有任何指针指向这块内存,也就无法释放这块内存,q的值赋给p之后,再调用free()函数释放p或者q的时候: free(q); 或 free(p); 释放的都只是原先q指向的内存空间,而原先p指向的内存块无法得到释放,也就造成了内存丢失。,15.5 实践练习,1编写程序,定义student结构体类型,它包含学生的学号和姓名,为包含3个student类型的数组分配内存、赋值并输出,使用完后再对内存进行释放。 2编写程序,为二维数组进行动态分配内存和释放内存。,END,

    注意事项

    本文(C语言_第15章.ppt)为本站会员(少林足球)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

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




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开