-
-
[求助]内存组织的困惑
-
发表于:
2007-11-17 15:14
3604
-
一般书上都说,内存布局大致是这样的
----------------- -> 地址高位
¦ 栈(stack) ¦
----------------
¦ 堆(stack) ¦
-----------------
¦ BSS ¦
------------------
¦ DATA ¦
------------------
¦ TEXT ¦
------------------ —> 地址低位
现在有一些疑惑
#include <stdio.h>
int glob;
void main(){
int local;
printf( "0x%08x\n ",&glob); //打印本地变量的内存地址
printf( "0x%08x\n ",&local); //打印全局变量的内存地址
}
在我机器上执行的结果是
0x00411d68
0x0012ff7c
我的问题是:glob是未初始化的全局变量应该放在bss段中,而
local是局部变量应该放在栈中。
依照以上的内存布局,我有些不理解,
为什么glob的内存地址会比local的内存地址高??
[培训]科锐逆向工程师培训第53期2025年7月8日开班!