计算机C语言中各个变量的存放区域:
代码区(CODE): 存放函数代码;
静态数据区(DATA): 存放全局变量/静态变量;
堆区(HEAP): 是自由分配区,存放动态数据,malloc()申请的空间就是堆区的;
栈区(STACK): 存放临时/局部变量。
1.数据结构的堆和栈
1)栈:只能在一端进行插入和删除的操作的线性表。
2)堆:堆的物理存储结构是一维数组,逻辑存储结构是完全二叉树
2.操作系统、单片机中的栈(堆栈)和堆
堆和堆栈都是保存在RAM中的数据,堆栈也是栈,只是不同的名称,堆栈最大的作用是在函数调用和中断处理是保存数据,用于处理后还原现场,
1)堆栈:操作方式和数据结构中的栈相同,栈的空间分配是由操作系统分配的RAM空间,存放函数的静态变量,遵守先进后出的原则,只允许在栈的一端进行操作,常用的指令是push进栈和pop出栈,进栈的一端称为栈顶,另外一端则成为栈底(push和pop的操作只能在栈顶操作)。
2)堆:操作方式类似于数据结构中的链表,堆的空间则是在操作系统分配了栈的空间后,RAM中剩余的空间则可以作为堆的空间使用,由使用者动态申请分配(malloc库函数,动态申请容易产生内存碎片)
https://blog.csdn.net/testcs_dn/article/details/48844841 介绍的不错
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)