堆栈与内存的关系

百度词条上说:
栈是一级cache,堆是二级cache
而堆的又是动态分配内存的对象,那么当melloc 10M内存时也可以吗?二级cache一般也没有这么大啊,对于这个问题比较疑惑 ,想寻求帮助 谢谢

人们发现变量主要是两种形式,一种内容短小(比如一个int整数),需要频繁访问,但是生命周期很短,通常只在一个功能内存在,而另一种内容可能很多(比如很长一个字符串),可能不需要太频繁的访问,但生命周期较长,通常很多个功能中可能都要用到,那么自然将这两类变量分开就显得比较理性。
一类存储在栈区,通常是局部变量、操作符栈、函数参数传递和返回值,另一类存储在堆区,通常是较大的结构体(或者OOP中的对象)、需要反复访问的全局变量。
堆区就是各种慢,申请内存慢,访问慢,修改慢,释放慢,整理慢(或者说GC垃圾回收),但优点也不言而喻,访问随机灵活,空间超大,在不超可用内存的情况下你要多大就给多大。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-01-26
在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。要点:堆,队列优先,先进先出(FIFO—first in first out)[1]。栈,先进后出(FILO—First-In/Last-Out)。
中文名
堆栈
外文名
stack
领域
计算机
定义
数据结构
功能
对数据项进行插入和删除
简介

什么叫堆栈
由malloc或new分配的内存都是从heap上分配的内存,从heap上分配的内存必须有程序员自己释放,用free来释放,否则这块内存会一直被占用而得不到释放,就出现了“内存泄露(Memory Leak)”。这样会造成系统的可分配内存的越来越少,导致系统崩溃。 堆栈是一种执行“后进先出”算法的数据结构。 设想有一个直径不大、一端开...

汇编语言里面的堆栈是什么东西啊!
1.堆栈本质上只是普通的内存地址 2.堆和栈本来是两种数据结构,现常用“堆栈”连用仅表示栈。3.栈的使用方式是临时存放数据,在某一段内存中,从内存地址最后开始存放,像叠盘子一样,只能将最后放入的数据先取出来。4.栈在汇编语言中经常使用,cpu寄存器中有sp(32位为esp),即stack pointer,指向...

C语言中内存堆和栈的区别
堆由整个系统共享,各个进程拥有同一个堆。 栈由每个进程自行管理,也就是每个进程的栈是独立的,互不相关。具体区别如下:一、栈上的内存由系统自动管理分配,用于存储局部变量。 堆中的内存由编程人员主动申请,在C语言中申请内存的函数为malloc, 使用后需要编程人员自行调用free函数释放。二、从分配释...

数据结构的堆栈,和内存空间的堆栈有什么区别和关系吗??
1、栈,即我们平常说的堆栈,英文为stack,存放自动变量、函数调用产生的临时变量等,该内存空间由编译器自动分配、释放以及管理,访问效率高,但不灵活,空间也小。2、堆,英文为heap,该内存空间需要程序员手动申请、释放,如C的malloc、free以及C++的new、delete等,平常说的内存泄露就是操作堆引起的,...

堆栈位于哪个区
堆栈位于计算机的内存区域。以下是详细的解释:堆栈是一种数据结构,通常被用来存储程序中临时的数据。在计算机内存中,堆栈被划分为一块特定的区域,用于存放程序中临时变量和函数调用时的信息。在计算机程序运行过程中,数据会被压入堆栈或者从堆栈弹出,这一过程受到计算机系统的内存管理机制控制。也就是说...

内存——栈?堆?这些都是什么啊!
相比之下,栈则是为函数调用保留的内存。栈内存自动管理,当我们进入函数或遇到函数调用时,相关信息会被压入栈,函数返回时自动弹出。它用于保存临时数据,如函数参数和局部变量。栈的大小有限,过多的变量或递归调用可能导致堆栈溢出,引发程序崩溃。总结来说,堆和栈在内存管理中扮演着不同的角色:堆...

什么是堆栈存储器
内存堆栈和楼上说的数据结构堆栈概念上还是有很大区别的。这里的堆和栈不仅仅是按照数据结构里的堆和栈来理解,更倾向于表示两种不同作用的内存区域。栈是有编译器来管理的,具体的大小可能根据编译器不同而异,编译器也可以手动设置栈的大小,通常有1M和2M的,比如在你定义变量时,由编译器将变量压栈...

堆栈是什么意思
堆栈的词语解释是:堆栈duīzhàn。(1)临时寄存货物的地方。堆栈的词语解释是:堆栈duīzhàn。(1)临时寄存货物的地方。词性是:名词。注音是:ㄉㄨㄟㄓㄢ_。拼音是:duīzhàn。结构是:堆(左右结构)栈(左右结构)。堆栈是计算机为程序分配的内存空间,用来存储数据的。内存是计算机系统中一个主要部件,...

堆栈问题跟手机自身的内存有关吗?
应该是没有关系的 运行内存和用来存放文件的内存并不一样

JVM的内存结构里的那个堆和栈,和数据结构里的堆和栈是一个东西吗?_百...
堆和栈的区别(内存和数据结构)在计算机领域,堆栈是一个不容忽视的概念,编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为曾经就是这么想的和汇编语言中的堆栈一词混为一谈。

相似回答