C语言内存分区_栈区、堆区、全局&静态区、文字常量区、程序代码区

本文详细介绍了C语言中内存的五个主要分区:栈区、堆区、全局&静态区、文字常量区和程序代码区。栈区存放函数内变量,自动分配释放;堆区需程序员手动申请和释放;全局及静态变量区存储相应变量;文字常量区保存不可修改的字符串;程序代码区存储编译后的机器码。
摘要由CSDN通过智能技术生成

C语言开发对内存使用有区域划分,分别是栈区、堆区、全局&静态区、文字常量区、程序代码区。注意此处的栈、堆名称有别于数据结构中栈与堆的概念。栈与堆的英文名分别为stack与heap。




栈区:

在函数中定义的变量存放的内存区域。

常见的int、float、char等变量均存放于栈区中,它的特点是由系统自动分配与释放,不需要程序员考虑资源回收的问题,方便简洁。

ps:栈区的地址分配是从内存的高地址开始向地地址分配。


堆区:

程序员通过指令自主向系统申请的内存区域,大小由程序员决定,它在使用完后同样需要程序员通过指令去释放该区域内存,否则将有可能出现内存的浪费与溢出。

C语言中申请堆区指令为:

int *p = (int *) malloc( N * sizeof(int) );  //分配N个int型(4字节࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值