【发布时间】:2017-03-26 04:57:06
【问题描述】:
我有以下难题要解决,但我不确定我该怎么做。它说:
有一个 Ubuntu Linux C 程序可以输出变量的地址。
v1: 0xa156128
v2: 0xff97410c
v3: 0xf750e34b
v4: 0x804a0c0
我知道该程序不使用共享内存,并且这些变量中至少有一个是堆变量。其中哪个变量是global / local / heap。
这就是所有可用的信息,我对解决这个难题的任何想法都很感兴趣。
阅读cmets后编辑:
如果我查看运行时 - 存储组织链接 (http://lambda.uta.edu/cse5317/notes/node33.html),似乎 v2 和 v3 是具有最大地址的局部变量,v1 是堆变量,因为它介于堆栈和静态数据,v4 是全局变量,它不像本地变量那样在运行时在堆栈上声明,而是在二进制文件的 .data 部分中声明。
【问题讨论】:
-
我可能是错的,但我有一种强烈的感觉,这个问题毫无意义。
-
感谢@squeamishossifrage 的链接。我编辑了我的问题。
标签: c hex memory-address