侧边栏

逆向之程序堆栈

逆向之程序堆栈

计算机内存分布

计算机内存:计算机内存分为数据段、代码段、堆段和栈段。

堆和栈在数据结构中是两种不同的数据结构。两者都是数据项按序排列的数据结构。

 

 栈

栈的定义:后进先出的数据结构。

栈的存取规则:后存放的先取先存放的后取,类似于取放在箱子底部的东西,首先要移开压在它上面的物体

 

 堆

  • 堆的定义

堆是一种经过排序的树形数据结构,每个节点都有一个值。通常我们所说的堆的数据结构是指二叉树。

  • 堆的特性:

根节点的值最小(或最大),且根节点的两个树也是一个堆
堆常用来实现优先队列,堆的存取是随意的,类似于在图书馆的书架上取书,书的摆放是有序的,书的取出是任意的。

堆和栈存储数据类型

栈的存储数据类型:
栈是一个内存数组,是一个LIFO(last-infirst-out,后进先出)的数据结构,栈存储3种类型的数据:分别是值类型变量的值;程序当前的执行环境;传递给方法的参数。

堆的存储数据类型:
堆是一块内存区域,在堆里可以分配大块的内存用于存储引用类型对象,与栈不同,堆里的内存能够以任意顺序存入和移除。

代码

posted @ 2021-04-26 10:55  菜鸟-传奇  阅读(170)  评论(0编辑  收藏  举报