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

看下面一段代码

#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/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值