快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → C语言笔试和面试重要知识点——内存分配

C语言笔试和面试重要知识点——内存分配

时间:2022-09-24 21:06:00人气:作者:快盘下载我要评论

今天和大家聊一聊编程语言中我们系统的内存分区是什么样的;这一部分在面试和笔试的时候是考察的一个重点;对于大多数程序员来说;我们可以简单地认为系统的内存分为3个部分;堆、栈和静态区;在学习的时候;很多书籍也没有把内存讲解清楚;导致初学者总是分不清楚;初学者趋势不用划分地很细致;接下来我们都来分别讨论一下各个区内存的作用;

 

C语言笔试和面试重要知识点——内存分配

 

1、文本段;存放代码和一些只读的数据。

2、静态存储区;static修饰的变量;全局变量和局部变量;;静态数据段是存放已经初始化的变量;static int a=10;; .BSS (存放未初始化的全局变量)。例如;static int a=10; 这是初始化好的变量;存放在静态数据段。static int a; 这是没有初始化的变量;存放在BSS段。

3、堆空间;需要手动申请与手动释放;使用是用malloc;;函数申请;返回为指向申请到的 地址的首地址的指针;使用结束后应该使用函数free;;对其进行释放;否则可能会出现内存泄露;

4、栈区;存放局部变量;系统自动申请与释放;空间比较小。

5、映射区;可以手动申请;手动释放;映射文件;加载动态库。

如果记不住上边的具体分区可以这样回答;

堆;由malloc()系列函数或者new操作分配内存。他的生命周期由free或delete决定;在没有释放之前他们都会一直存在;直到程序结束。其特点就是使用灵活;空间空间比较大;但是容易出错。

栈;保存局部变量。栈上的内容只在函数的范围内存在;当函数运行结束这些内容也会被自动销毁;其特点就是效率高;但是空间有限。 

静态区;保存自动局部变量和static变量;在整个程序的生命周期内都存在。

 

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。