一个由C/C 编译的程序占用的内存分为以下几个部分:
栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束后由系统释放。
文字常量区:常量字符串就是放在这里的。程序结束后由系统释放。
程序代码区:存放函数体的二进制代码。
申请方式:
栈区(stack):
由系统自动分配。例如,声明在函数中一个局部变量 int b;
系统自动在栈中为b开辟空间
堆区(heap):
需要程序员自己申请,并指明大小,在c中malloc函数
如p1 = (char *)malloc(10);
在C 中用new运算符
如p2 = new char[10];
但是注意p1、p2本身是在栈中的。
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
编译
+关注
关注
0文章
696浏览量
35279 -
STACK
+关注
关注
0文章
15浏览量
3660
发布评论请先 登录
相关推荐
热点推荐
Vibe Coding AI全栈开发实战
Vibe Coding AI全栈:效率翻倍的开发新方式
在科技飞速发展的当下,软件开发领域正经历着一场深刻的变革。传统的编程模式逐渐被一种新兴的、以AI为核心的全栈开发方式所取代,其中Vibe
发表于 04-15 16:02
曙光云AI全栈平台解锁政企AI新效能
AI风口席卷政企,能扎进实际场景的实战型AI才是政企刚需!行业空谈AI概念时,曙光云AI全栈平台已将全栈自研技术,转化为政企可感知的真实生产力,用落地实力重新定义政企AI标准。
LMP93601:用于热电堆传感器的高性能模拟前端
LMP93601:用于热电堆传感器的高性能模拟前端 在电子设计领域,热电堆传感器的应用日益广泛,像建筑自动化里的 HVAC 系统控制、手势识别等。而与之匹配的模拟前端(AFE)芯片的性能,对整个系统
IPv6 Only 进入倒计时 ,单栈替代双栈成网络演进必然选择
2025年末,中国工程院院士邬贺铨在“2026ICT行业趋势年会”上强调“双栈是过去的妥协,IPv6Only才是未来的必然”,这一判断精准点出了全球网络协议演进的核心方向。随着技术兼容方案成熟、政策
Amphenol ZTPD - 2210数字输出热电堆探测器深度解析
Amphenol ZTPD - 2210数字输出热电堆探测器深度解析 在电子工程领域,传感器是获取环境信息的关键部件。今天,我们要深入探讨Amphenol Advanced Sensors的ZTPD
使用Keil MicroLIB时自动设置堆大小
Keil编译项目,如果使用微库MicroLIB,就可以使用malloc。微库内部位置一个堆管理模块。
芯片的RAM大小是固定了的,前面分为全局变量,后面分给堆和栈,这是一般开发方式。
但是我们在开发
发表于 12-09 07:04
Stack栈到底用来干嘛的呢?
Stack_Size就是栈大小,0x00000400就是代表有1K(0x400/1024)的大小。
那这个栈到底用来干嘛的呢?
比如说我们函数的形参、以及函数里定义的局部变量就是存储在栈里,所以
发表于 12-01 08:04
在Keil5中查看栈大小
1、修改启动文件:
方法说明:栈大小通常在启动文件中定义。可以通过直接修改这个文件中的Stack_Size变量来调整栈大小。
操作步骤:找到对应的启动文件,定位到Stack_Size的定义处,修改
发表于 11-14 06:32
如何在应用程序调试期间分析栈和堆使用情况
随着 AMD Vitis 统一软件平台 2021.2 的发布,Vitis 引入了一个 Tcl 脚本,用于在应用程序运行的特定时间点协助查找栈和堆的内存使用情况。该脚本已延续到后续的 Vitis 版本
这个栈堆大小我设置256就是start error 设置128一会start success 一会start error是什么情况?
error\");
}
return 0;
}
这个栈堆大小我设置256就是start error 设置128一会start success 一会start error是什么情况
发表于 09-29 07:44
水泥厂堆料机与取料机无线连锁控制解决方案实施案例
在水泥厂的生产流程中,堆料机和取料机协同作业至关重要。某大型水泥厂的堆料区和取料区相隔一定距离,以往采用有线连接实现二者的连锁控制,但随着生产规模扩大和设备老化,问题频发。
自动驾驶中常提的“全栈”是个啥?有必要“全栈”吗?
[首发于智驾最前沿微信公众号]随着自动驾驶技术落地,越来越多车企公布了自己的自动驾驶方案,在很多车企的宣传中,会使用“全栈自研”的说法来证明自己的实力。所谓“全栈”,字面意思是全套技术栈的自主开发
如何理解整流桥堆?
核心概念一句话:整流桥堆,就是把“来回跑”的交流电,变成“只往一个方向跑”的直流电的“交通警察”。 一、为什么需要整流? 想象一下水流: 交流电 (AC): 像海水潮汐,一会儿涌向岸边(正方
堆和栈的区别
评论