我最近正在学习操作系统,这里是一个在线显示用户空间和内核空间的内存布局以及堆栈,堆等布局的图片。
在这张图中,我看到堆栈位于用户空间中最高的内存地址处,高于堆,数据段等。用户空间中栈和堆的内存布局
为了检查,我使用的内存观察者窗口在vs2012下调试视图,这里是我的代码:
int a = 3;
int main()
{
int b = 5;
int *p = new int[100];
delete [] p;
return 0;
}
我查的a(data segment),b(stack variable) and p(heap)
的内存地址,但我发现b的地址是三者中最低的,那么为什么结果与上图不同呢?
+1为简明明确的问题。 – Abhineet
我想a是数据段,b是堆栈? –
@Lashane我犯了一个错误,很抱歉。 –