【发布时间】:2014-04-24 04:37:24
【问题描述】:
我有两个 C 代码。 test.c 是
#include <stdlib.h>
int main ()
{
int a;
a = 5;
return a;
}
test2.c 是
#include <stdlib.h>
int main ()
{
int a;
a = 6;
return a;
}
当我运行它们并使用 gdb 检查“a”的内存地址时,我得到了相同的地址。为什么会这样?
断点1,main() at test.c:7 7 return a; (gdb) 打印 &a $1 = (int *) 0x7ffffffffe1cc
断点1,main() at test2.c:7 7 return a; (gdb) 打印 &a $1 = (int *) 0x7ffffffffe1cc
【问题讨论】:
-
为什么不呢?两个程序是相等的(常量值除外)。你不是在检查
5和6的地址(没有这个东西),你是在检查a的地址。 -
您的意思是:同时运行它们吗?
-
@david.pfx 我先运行 test.c,然后运行 test2.c