- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
1.1内存分区,堆区
内存资源是非常有限的。尤其对于移动端开发者来说,硬件资源的限制使得其在程序设计中首要考虑的
问题就是如何有效地管理内存资源。本文是作者在学习C语言内存管理的过程中做的一个总结。
1.1.1变量概念:
全局变量(外部变量):出现在代码块{}之外的变量就是全局变量。
局部变量(自动变量):一般情况下,代码块{}定义的变量就是自动变量,也可使用auto显示
定义。
静态变量:是指内存位置在程序执行期间一直不改变的变量,用关键字static修饰。
代码块的静态变量只能被这个代码块,代码块外部的静态变量只能被定义这个变量的
文件。
1.1.2extern关键字:
1、同一个文件中的变量;
2、另一个文件中的变量;
3、另一个文件中的函数。
注意:C语言中函数默认都是全局的,可以使用static关键字将函数为静态函数(只能被定义这个函
数的文件的函数)。
程序执行流程:
1.1.3代码区:
程序作系统加载到内存的时候,所有的可执行代码(程序代码指令、常量字符串等)都加载到
代码区,这块内存在程序运行期间是不变的。代码区是平行的,里面装的就是一堆指令,在程序运行期
间是不能改变的。函数也是代码的一部分,故函数都被放在代码区,包括main函数。
1.1.4静态区
静态区存放程序中所有的全局变量和静态变量。
1.1.5栈区
栈(stack)是一种先进后出的内存结构,所有的自动变量、函数形参都在栈中,这个动作由编
译器自动完成,我们写程序时不需要考虑。栈区在程序运行期间是可以随时修改的。当一个自动变量超
出其作用域时,自动从栈出。
每个线程都有自己专属的栈;
栈的最大尺寸固定,超出则引起栈溢出;
变量离开作用域后栈上的内存会自动释放。
intmain(intargc,char*argv[])
{
chararray_char[1024*1024*1024]={0};
array_char[0]=a;
printf(%s,array_char);
getchar();
}
栈溢出怎么办呢?就该堆出场了。
堆(heap)和栈一样,也是一种在程序运行过程中可以随时修改的内存区域,但没有栈那样先进后出的
顺序。更重要的是堆是一个大容器,它的容量要远远大于栈,这可以解决内存溢出。一般比较复杂
的数据类型都是放在堆中。但是在C语言中,堆内存空间的申请和释放需要手动通过代码来完成。
那堆内存如何使用?
malloc函数用来在堆中分配指定大小的内存
单位为字节(Byte),函数返回void*指针;free负责在堆中释放malloc分配的内存。
#includestdlib.h
#includestdio.h
#includestring.h
voidprint_array(char*p,charn)
{
inti=0;
for(i=0;in;i++)
{
printf(p[%d]=%d\n,i,p[i]);
}
您可能关注的文档
- 特殊函数近似值大物实验报告s19acc cl05.pdf
- 美容行业美丽济涌动.pdf
- 认证网店过程注册步骤.pdf
- 中国医用治疗设备行业发展监测及投资战略研究报告.docx
- 【3套题】2025年证券投资顾问胜任能力《证券投资顾问业务》试卷解析(内部资料9).pdf
- 2019-2025年中国综合麻醉机行业市场调查研究及投资前景预测报告.docx
- 2020-2025年中国医用电子仪器行业发展前景预测及投资战略研究报告.docx
- 2023-2029年中国肿瘤消融设备行业市场发展现状及投资方向研究报告.docx
- 2025年中国家庭康复医疗设备行业市场全景评估及发展趋势研究预测报告.docx
- 中国柔性内窥镜设备行业发展运行现状及发展趋势预测报告.docx
- 2025年中国一次性内镜套管针行业市场调研及投资规划建议报告.docx
- 2021-2026年中国便携式癌症筛查设备市场竞争格局及投资战略规划报告.docx
- 2020-2025年中国医疗器械维修设备市场前景预测及投资规划研究报告.docx
- 中国缝合针行业发展潜力预测及投资战略研究报告.docx
- 2023-2029年中国冲牙器行业市场发展现状及未来发展趋势预测报告.docx
- 2024-2030年中国家庭治疗仪行业发展运行现状及投资战略规划报告.docx
- 中国镇痛泵行业市场调查研究及投资战略研究报告.docx
- 2025年中国假牙(义齿)行业市场前景预测及投资战略研究报告.docx
- 中国男性外部导管行业市场运营现状及投资方向研究报告.docx
- 2025年中国医疗仪器及器械市场供需格局及未来发展趋势报告.docx
最近下载
- 沪教版(2024)化学九年级上册第6章 综合素质评价.docx VIP
- 铝压延加工设备维护与故障排除考核试卷.docx
- 沪教版(2024)化学九年级上册第3章 综合素质评价.docx VIP
- 北师大版五年级数学上册-易错题.doc VIP
- 沪教版(2024)化学九年级上册第2章 综合素质评价.docx VIP
- (完整word)八年级英语单词听写表(新人教版).docx
- 沪教版(2024)化学九年级上册第5章 综合素质评价.docx VIP
- 沪教版(2024)化学九年级上册第1章 综合素质评价.docx VIP
- 《3-6岁儿童学习与发展指南》解读.ppt VIP
- 沪教版(2024)化学九年级上册第4章 综合素质评价.docx VIP
文档评论(0)