C语言的内存管理

前言

这篇文章给大家简单介绍一下C语言中内存管理。

一、C语言内存管理的简图

二、内存的细分 

内存分为:
① 
栈区
② 堆区
③ 静态存储区
④ 常量存储区
⑤ 代码区

1.栈区(Stack):
① 由编译器自动分配释放。
② 利用栈存储一些临时变量,包括函数参数、函数内部局部变量、返回值等。
③ 栈的操作遵循“先进后出”“后进先出”的原则。
栈由高地址往低地址增长。

2.堆区(Heap):
① 
由程序员手动分配、释放的存储区。
堆在内存中位于bss区和栈区之间。
③ 通过调用函数如malloc()、calloc()、或realloc()来从堆中分配内存。
④ 必须手动调用free()函数来释放堆内存,否则可能导致内存泄漏。

3.静态存储区:
内存分配在程序编译之前完成,且在程序的整个运行期间都存在。
② 存储全局变量和静态变量。
③ 静态存储区细分可以分为data段和bss段。
bss段:① 未初始化的全局/静态变量
             ② 初值为0的全局/静态变量
data段:有初始值的全局/静态变量,并且初值不为0

4.常量区:
① 
常量存储区用于存储常量数据,如字符串常量、const修饰的变量。

5.程序代码区:
① 用来存放程序执行代码的一块内存区域。

总结

这篇文章简单介绍了C语言的内存管理,后面会介绍下基于ARM的C语言,希望对大家有帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值