C语言——存储类和动态内存分配

本文深入解析程序内存管理,详细解释静态变量、自动变量及动态分配内存的区别,以及它们在内存分配和释放过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序可以将他所用的内存分为三类:

       1.具有外部链接、内部链接以及具有空连接的静态变量

        2.自动变量

        3.动态分配内存的

        静态存储时期变量所需的内存数量,存储在这一部分的数据在整个程序的运行期间都可用。这一类型的每个变量在程序开始的时候就已存在,到程序结束时终止。

        自动变量在程序进入包含改变量定义的代码块的时候产生在退出这一代码块时终止,因此伴随的程序对函数的调用和终止,自动变量使用的内存数量也在增加和减少。典型的,将这一部分内存处理为一个堆栈。这意味着在内存中,新变量在创建时按顺序加入,在在消亡时按相反的顺序移除。

        动态分配的内存在调用malloc()或相关的函数是产生,在调用free()时释放,有程序员而不是一系列的固定规则控制内存持续时间,因此内存块可在一个函数中创建,而在另一个函数中释放。由于这一点,动态内存分配所用的内存部分可能变成碎片状,也就是说,在活动的内存块之间散布着未使用的字节片。使用动态内存往往导致进程比使用堆栈内存慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值