Van Pan

导航

2009年2月7日 #

VC++ 内存机理的个人理解(二)——堆和栈

摘要: 说完了地址和指针,我们来说说堆和栈的不同,在此之前,感谢Polaris给我的帮助,在这个问题是他给我讲了很多,也举了很多例子,让我懂了很多关于堆栈的东西。 首先,关于堆和栈的数据结构小凡就不多说什么了,是先进先出还是后进先出也不是我们讨论的范围。 但是有一点还是很不一样的,栈内存空间一般而言要比堆内存空间小很多,对windows来说,一个thread的栈内存是1M,但是堆内存可以按照你的需要申请甚至好几个G(当然到时候要用硬盘缓存这个就是题外话了)。 从编码上看,也是有一些区别的。 int intInStack=0; int *intInHeap=(int *)malloc(sizeof(i. 阅读全文

posted @ 2009-02-07 16:14 Van Pan 阅读(257) 评论(0) 推荐(0) 编辑

VC++ 内存机理的个人理解(一)——地址和指针的关系

摘要: 内存的概念就不赘述了,在此主要叙述一下VC++中指针,地址,堆,栈的个人理解,如果有错请不吝指出。 地址是什么? 地址是一个变量在内存中的“门牌号码”,要得知一个变量的值,只要根据变量的地址就能得到这个地址中到底住的是什么人(这个变量的值到底是什么)。 对于值类型的变量来说,一个地址就能对应一个变量了。但是对于大小超过一个内存块的引用类型,当这个引用类型在一个地址对应的内存块中放不下,这个引用类型的地址就是它的多个内存块的首地址,程序可以通过这个首地址得到一整块内存,也就得到了这个对象。 其中涉及了对象的内存分配原则,关于这个请参见其它内容。在本文中,主要记住,地址就是变量的首地址。 比如我. 阅读全文

posted @ 2009-02-07 15:24 Van Pan 阅读(286) 评论(0) 推荐(0) 编辑