社区
C#
帖子详情
关于stack和heap的菜鸟问题
fancyyin
2003-10-19 08:31:21
programming c#一书中多次提到reference型数据是放在heap里的,value类型放在stack中,我想知道这一堆一栈倒底是什么?和内存有关吗?
...全文
55
1
打赏
收藏
关于stack和heap的菜鸟问题
programming c#一书中多次提到reference型数据是放在heap里的,value类型放在stack中,我想知道这一堆一栈倒底是什么?和内存有关吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Stevetan81
2003-10-19
打赏
举报
回复
heap stack就是通常所说的堆 和 栈,它们都是内存中的一个区域。
如果学过数据结构就会知道他们的结构有什么区别了,
在编程中,它们的区别就是 堆 的性能不如 栈 ,也就是说struct用来做数据结构性能优于用class做的数据结构,因为struct是栈式存储,class是堆式存储。
【C语言】 “函数指针”和“指针函数” 用法和详解(太细了!!!)
菜鸟
级教程
(1)堆和栈是 C 语言中两种不同的内存区域,用途和管理方式不同。(2)堆用于动态分配和管理数据,需要手动分配和释放。(3)栈用于函数调用和局部变量,内存分配和释放是自动的。(4)堆和栈在内存管理方面有不同的用途和约束,程序员应根据需求合理选择它们。(5)在 C 语言中,需要特别注意内存管理,以避免内存泄漏和悬挂指针等
问题
。
堆(
heap
)和栈(
stack
)的区别
1申请方式
stack
:由系统自动分配。例如,声明在函数中一个局部变量int b;系统自动在栈中为b开辟空间.
heap
:需要程序员自己申请,并指明大小,在c中用malloc函数. 2申请后系统的响应 栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。 堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空
关于堆(
heap
)、栈(
stack
)、方法区(method)
阅读大牛们的文章,我一个小
菜鸟
进行了系统的小结,如有内容重复请见谅,谢谢!首先理解堆(
heap
)、栈(
stack
)和方法区(method)也叫静态存储区的概念,然后比较它们之间的特点 堆: 存储的全部是对象,每个对象都包含一个与之对应的class文件信息,class的目的是得到操作指令。 在Java中一切都是对象,而对象又是类的实例,都是通过new()来新建对象的...
heap
(堆)和
stack
(栈)的区分
静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量。 栈内存用来保存定义在函数内的非static对象。分配在静态或栈内存中的对象由编译器自己创建和销毁 对于栈对象,仅在其定义的程序块运行时才存在;static对象在使用之前分配,在程序结束时销毁 除了静态内存和栈内存,每个程序还有一个内存池。这部分内存被称作自由空间(free store)或堆(
heap
)。程序...
菜鸟
学Java——Java内存分析
我们常说的Java内存主要分为四大块(寄存器不在考虑之内,我们无法用代码来操控它):
stack
(栈)、
heap
(堆)、data segment(数据区)、code segment(代码区)。它们的主要用途如下图所示: 而在上面四个当中,我们经常谈论的是右边那两个家伙——
stack
和
heap
。今天我们就来聊聊Java代码在运行的过程中,在
stack
和
heap
中到底是什么样子的...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章