首页 新闻 会员 周边 捐助

C#语法中堆栈和托管堆的问题?

0
[已解决问题] 解决于 2012-04-17 14:19

值类型的数据放在堆栈中(stack),引用类型数据放在托管堆中(manager heap),引用地址放在堆栈中。

我想问的问题是堆栈和和托管堆是不是都是占用的内存?
引用类型和值类型谁占的内存大?

在堆栈中放的引用类型的地址占用的内存大吗?

学之乐的主页 学之乐 | 初学一级 | 园豆:33
提问于:2012-04-17 09:28
< >
分享
最佳答案
0

没有“堆栈”,你说的“堆栈”叫做栈stack。

栈和和托管堆是不是都是占用的内存?

是的。

引用类型和值类型谁占的内存大?

这个不能确定。引用类型也可以很小,取决于类型的定义。例如object a = 1;  那么a这个引用占用的内存,比一个

struct MyValue
{
       int i,j,k,l,m,n,o,p;
}

实例占用的内存要小。

栈中放的引用类型的地址占用的内存大吗?

固定值,32位机器是4byte,64位机器是8byte。

 

奖励园豆:5
水牛刀刀 | 大侠五级 |园豆:6350 | 2012-04-17 11:52

非常感谢您的解答,我还有一事不明,还望解答。就是栈中放一个int类型的数据和一个引用类型的地址,哪一个占用的内存大。只说栈上的,不说引用类型的值放在堆上占用的内存。

学之乐 | 园豆:33 (初学一级) | 2012-04-17 13:32

@河洛之子: 一样大。32位机器是4byte,64位机器是8byte。

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-04-17 13:54
其他回答(1)
1

你的这些问题,把问号换成句号,就是的了。

悟行 | 园豆:12559 (专家六级) | 2012-04-17 09:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册