个人对堆栈的理解和IAR编译器的内存分配

本文介绍了堆栈的概念,heap(堆)和stack(栈)的使用区别,以及在C/C++环境下的内存申请与释放。重点讨论了IAR编译器如何进行内存设置和分配,强调了IAR先分配堆栈空间的特点。通过查看.map文件可以确定程序占用的堆栈最大值,并在IAR的General Options中设置合适的Stack sizes。
摘要由CSDN通过智能技术生成

heap(堆):开发者自己申请而分配到的动态内存;不要了需要自己释放内存;

stack(栈):通过定义 变量、数组等,系统分配的内存;不用了不需要自己释放内存;

在c语言编译环境下:char  *p=(char *)malloc(分配的内存大小);//申请内存

free(p); //释放内存

在c++下是用new来申请;

定义一个静态数组,实际上就是在栈中分配一块动态内存,数组名即为内存的地址;

IAR编译器的内存设置及分配

IAR是先分配堆栈空间的,也就是说,相当于给了一个很大的内存空间,用来存放堆栈的数据;

在c/c++ compiler选项中language里选择的是语言c,分配内存就是用的malloc,释放用free;

检查程序占用的堆栈内存可以通过如下方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值