堆与栈的内存地址相对高低

来源:互联网 发布:淘宝网婴儿衣服婴比迪 编辑:程序博客网 时间:2024/05/22 16:41

看下面一段代码

#include<bits/stdc++.h>using namespace std;int main(){int a,b;  //栈printf("%x\n%x\n",&a,&b);int *c = new (int );   //堆printf("%x\n",c);} 

运行结果:



我也有这样的疑问,记得学习的计算机组成原理上都说栈在高地址往低处增长,堆在低地址往高处增长,

那么实际情况到底如何呢?

直到看到知乎:

https://www.zhihu.com/question/36103513?sort=created

总结一下:

1. 至于数组元素与栈的增长方向:C与C++语言规范都规定了数组元素是分布在连续递增的地址上的。

2. Windows上不应该对栈和堆的相对位置做任何假设

 

附上一个讲解内存管理的写的很好的博客:

http://kb.cnblogs.com/page/66608/

 

0 0