heap(堆):开发者自己申请而分配到的动态内存;不要了需要自己释放内存;
stack(栈):通过定义 变量、数组等,系统分配的内存;不用了不需要自己释放内存;
在c语言编译环境下:char *p=(char *)malloc(分配的内存大小);//申请内存
free(p); //释放内存
在c++下是用new来申请;
定义一个静态数组,实际上就是在栈中分配一块动态内存,数组名即为内存的地址;
IAR编译器的内存设置及分配
IAR是先分配堆栈空间的,也就是说,相当于给了一个很大的内存空间,用来存放堆栈的数据;
在c/c++ compiler选项中language里选择的是语言c,分配内存就是用的malloc,释放用free;
检查程序占用的堆栈内存可以通过如下方法: