首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

win与linux下 局部变量内存布局解决方法

2012-03-01 
win与linux下 局部变量内存布局intxchara[9]x0cout &x (void*)&x endlcout a (void*

win与linux下 局部变量内存布局
int   x;
char   a[9];
x   =   0;

cout   < <   "&x   =   "   < <   (void*)&x   < <   endl;
cout   < <   "a   =   "   < <   (void*)a   < <   endl;
同样的代码在Win   VS下   x   地址要大于   a   的地址,a[0]   的地址小于a[1]的
说明了栈是从高向低生长   每次运行值都不改变,说明了是虚拟地址

在linux   GCC下   x   的地址要小于   a   的地址,这是为什么呢,难道又是一个编译相关的问题
而且每次运行显示的地址都不一样,这是为什么呢?

[解决办法]
编译相关,系统相关.所以没有固定解;

热点排行