C语言的学习

参加新职课课程后,在完成每日一练以及做任务卡的过程中,遇到了很多的问题,通过写技术博客,整理遇到过的一些问题。

内存四区

首先,我们得知道C语言程序内存分配的过程:操作系统将硬盘中的数据下载到内存,并将内存划分成四个区域,由操作系统找到main入口开始执行程序。
而这四个区域,就是我们要说的内存四区——栈区、堆区、数据区、代码区。
当C程序运行时,便从操作系统得到一块内存空间,但这块空间怎么分配与管理,是我们要说的重点。类比个人的房间,毫无规则的摆放你的物品将会一团糟,显然我们需要有某种规则以便有条理的摆放与管理你的物品。对C语言而言,这个某种规则便是C语言内存管理机制。

一、堆区stack

malloc, calloc, realloc等函数,一般由程序员分配释放(动态内存申请与释放),若程序员不释放,程序结束时可能由操作系统回收

二、栈区heap

由编译器自动分配和释放,存放函数的参数值,局部变量等临时的值

三、全局区(静态区)static

用于存放全局变量和静态变量,全局变量和静态变量分为初始化和未初始化,初始化过的放在一个区域,未初始化的存放在相邻的另一个区域,该区域在程序结束后由操作系统释放。

四、代码区

用来存放程序执行代码的一块内存区域。这部分区域的代码属于只读。
C语言学习(2)
这是我在遇到这些问题时,将自己找到的解答通过自己的理解进行整理,肯定会有不足之处,如果有错误的地方,希望不吝赐教。

相关文章:

  • 2021-07-27
  • 2021-11-04
  • 2022-01-20
  • 2021-10-04
  • 2021-07-31
  • 2022-01-13
  • 2022-12-23
  • 2021-06-24
猜你喜欢
  • 2021-04-24
  • 2021-11-05
  • 2021-12-11
  • 2021-07-29
  • 2022-01-20
  • 2021-12-18
  • 2022-12-23
相关资源
相似解决方案