问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么叫做堆栈?

发布网友 发布时间:2022-04-23 03:13

我来回答

1个回答

热心网友 时间:2023-07-04 09:05

堆和栈是两个不同的概念。 堆(heap)上分配的内存,系统不释放,而且是动态分配的。栈(stack)上分配的内存系统会自动释放,它是静态分配的。运行时栈叫堆栈。栈的分配是从内存的高地址向低地址分配的,而堆则相反。由malloc或new分配的内存都是从heap上分配的内存,从heap上分配的内存必须有程序员自己释放,用free来释放,否则这块内存会一直被占用而得不到释放,就出现了“内存泄露(Memory Leak)”。这样会造成系统的可分配内存的越来越少,导致系统崩溃。 堆栈是一种执行“后进先出”算法的数据结构。 设想有一个直径不大、一端开口一端封闭的竹筒。有若干个写有编号的小球,小球的直径比竹筒的直径略小。现在把不同编号的小球放到竹筒里面,可以发现一种规律:先放进去的小球只能后拿出来,反之,后放进去的小球能够先拿出来。所以“先进后出”就是这种结构的特点。 堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减 1。这个过程叫做“弹出pop”。如此就实现了后进先出的原则。 而堆栈寄存器就是存放堆栈的寄存器。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
cpa改分电话可信吗 有人今年收到这样的短信吗? 温馨提示 通知:你此次报考的湖南中级会 ...会计从业资格证,今天有陌生号码打电话说我没过,是真的吗?我都考三... 坠入星河的温柔仙句 惊艳所有人的优美文案 坠入星河的温柔仙句 温柔很仙的宝藏文案 温柔到心坎里的文案句子(温柔且治愈的短句子) 实习期劳务合同简易版 ...企业受伤,如果辞职是否还有补偿?医疗费谁出? 毛晓彤十大经典电视剧 这个锦尚天舞舞蹈里面的音乐是什么?急求 http://m.iqiyi.com/w_19rr... 什么叫做堆栈? 椭圆面积怎么计算 椭圆面积怎么求 自然妆的画法 新手眼线液怎么画 椭圆的面积如何求 数据结构的堆栈和内存空间的堆栈有什么区别和关系吗? 为什么要用堆栈,什么是堆栈 眼线液的画法,要图解。 花呗逾期了好几个月今天全额还款后无法使用 要多久才能恢复呀 堆和堆栈的区别 正确使用眼线液 怎么化妆步骤 花呗逾期3个月,昨天还清。什么时候可以恢复使用? 椭圆形的面积怎么算?最好列出公式,举例说明一下? 眼线液怎么画啊??? 操作系统中堆和栈的区别 椭圆面积的计算怎么计算? 眼线液怎么画 花呗逾期还清后多久才能恢复使用,能申诉么 椭圆形的面积计算公式 花呗四个月逾期,啥时候恢复正常使用? 怎么画眼线液才好看呢? 椭圆的面积如何计算? 眼线液怎么画眼线 怎么求椭圆面积 应该怎么求椭圆的面积 用眼线液怎么画上下眼线? 椭圆形怎么算面积 椭圆的面积求法 怎么用眼线液画眼睛 椭圆面积求法 一个正方形里面有个椭圆怎么求椭圆的面积 怎么求椭圆的面积 如何用word直接做目录 如何制作word中的目录,简单易懂的 如何制作word的目录 如何制作word文档目录? 桂林米粉的酸笋是怎么做的? 桂林酸笋怎么做_桂林米粉酸笋的做法 桂林米粉的凉菜酸笋丝怎么做? 请问桂林米粉店里的酸辣竹笋是怎么做的?