c语言中的五种内存分区
c语言中的内存分区可以分为五种,分别是栈,堆,全局区(静态区),常量区,代码区
在c语言学习的过程中碰到了内存存储分区的问题,在网上搜了一下,作为小白,还是要把这些东西记录下啊,加深记忆。
-
栈
内存由系统管理,在需要时系统会自动分配存储空间,使用完毕后系统自动释放内存,一般用来存储函数中的变量。栈是从高地址向低地址存储的。内容可读可写。 -
堆
堆的内存是由程序员管理的,程序员自己分配存储空间,使用完毕后自己释放存储空间(注意保存地址,防止内存泄漏;注意释放内存空间,最后清空NULL),一般存储用malloc这类函数分配的内存空间。堆是从低地址向高地址存储的。内容可读可写。 -
全局区(静态区)
内存由系统管理,存放全局变量和静态变量,变量一经创建就不会被释放,下一次再次调用时值为上一次操作的值。内容可读可写。 -
常量区
内容由系统管理,顾名思义,里面存放的是常量,const。内容是只读的。 -
代码区
内存由系统管理,该区域是用来存放程序代码的。内容是只读的。
欢迎补充指正!