- 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
- 2024年粤教版九年级科学下册阶段测试试卷108.doc
- 中国资产管理软件行业市场调查研究及发展战略规划报告.docx
- 2024-2027年中国软磁材料行业运行态势及未来发展趋势预测报告.docx
- 2024年中图版高三地理下册月考试卷含答案579.doc
- 中国预算管理软件行业全景评估及投资规划建议报告.docx
- 专题06:多位数乘一位数(专项训练)(解析版)-2024-2025学年三年级数学上册人教版期末复习讲练测(人教版)-A4.docx
- 宣传传媒作品制作项目48.docx
- 2024-2030年中国碳纤维新材料行业市场全景分析及投资前景展望报告.docx
- 2024年冀教版八年级历史上册月考试卷15.doc
- 活动策划 -2025敦煌主题非遗庙会市集-春节庙会国潮地产市集活动策划方案【古风活动】.docx
- 2024-2027年中国超高压XLPE材料行业发展监测及投资战略研究报告.docx
- 2024-2027年中国办公软件行业市场运行现状及投资规划建议报告.docx
- 2024-2025年中国软件园区行业市场调研分析及投资前景预测报告.docx
- 中国电脑行业市场发展现状及投资前景展望报告.docx
- 专题07 指数与指数函数(考点清单+知识导图+ 15个考点清单&题型解读)(原卷版)-A4.docx
- 2024-2030年中国远程协作办公行业市场深度研究及投资战略规划报告.docx
- 中国工程计算器行业市场全景评估及发展前景预测报告.docx
文档评论(0)