苏嵌正式培训—Linux C第 5 天
嵌入式正式培训第五天(20200709) 日报表
姓名:吴航 班级:物171
第一题:malloc/free:free怎么知道释放多大的空间?
答:free函数调用形式:free(void*ptr);
因为free函数释放ptr所指向的一块内存空间,它指向被释放区域的首地址。被释放区是由malloc或calloc函数所分配的区域(malloc函数申请的存储空间比所要求的要稍大一些,额外的空间用来记录管理信息——分配块的长度)因此free函数是知道首地址为ptr的“空间大小”。
【补充】free()并不是真正意思上的释放内存。其实,free函数只是将参数指针指向的内存归还给操作系统,并不会把参数指针置NULL。从另一个角度来看,内存这种底层资源都是由操作系统来管理的,而不是编译器,编译器只是向操作系统提出申请。所以free函数是没有能力去真正的free内存的。只是告诉操作系统它归还了内存,然后操作系统就可以修改内存分配表,以供下次分配。
第二题:static在什么情况下使用?
答:当对象中出现共享数据时,该数据被静态所修饰。例如张三李四都是姓名,姓名是属性,数据是值(张三,李四等),值不一样不能共享,只能是对象特有数据。又例如,学生都是同一个学校,所以,学校可以定义为静态变量。限制函数的作用域,在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;限制变量的作用域,在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;
第三题:为什么要使用typedef给类型重命名?
答:一是表明该类型的特殊作用,二是将来有可能要改变这种类型(比如由int类型改为char),每一个变量的声明都要改动,而声明则使维护程序变得十分简单——只要改一下typedef语句即可。
项目名称 | 【苏嵌实训—Linux C第 3 天】 |
今日进度及任务 | 对c语言的内存管理进行学习 |
本日任务完成情况 | 基本完成 |
本日开发收获 | 更深一步的熟悉了linux下的环境,通过对内存池管理的学习,对之前好多迷惑的问题有了自己的解答。 |
- ZLMS e-Learing教学管理系统新版本1.1.0正式发布! 完全免费! 适合做教学培训,学习活动的管理!
- 正式培训的第一天,实习第五天
- 【苏嵌实训-嵌入式 linux C 第 5 天】
- iOS培训正式开班
- 2017软考 | 正式的培训课开始之前,我该做些什么?
- 【苏嵌实训-嵌入式 linux C 第 5 天】
- 《守望先锋》12月13日正式开启圣诞节活动_广州达内Unity3D培训机构
- 热烈庆祝我公司北京实训基地正式启用——中程在线12月企业培训专刊
- Java培训笔记四(开始正式培训)
- 2014年清风暑期培训正式开始! 新起点、新梦想
- 珠峰培训node正式课--【笔记】|全局对象 | process | util | fs | stream 流
- 苏嵌实训-嵌入式 linux C 第5 天
- SCPC / ACM2015国庆培训正式赛
- 百度凤翔培训认证体系正式启动
- 漫谈测试--测试职业发展--测试基于互联网的测试系列培训--正式开课
- 正式培训的第一天
- 正式开始做培训项目,会做一些系列教程放上来
- [置顶] 【正式发布】火星人敏捷开发手册2012-02-24(基于Scrum的敏捷开发免费培训教材及公司内部宣传材料)
- 2015年清风网络大型培训正式开始! 新起点、新梦想