2
我有以下难题要解决,我不知道我该怎么做。它说:拼图 - 确定哪些地址属于全局/本地/堆变量
有一个Ubuntu Linux C程序输出变量的地址。
v1: 0xa156128
v2: 0xff97410c
v3: 0xf750e34b
v4: 0x804a0c0
我知道程序不使用共享内存,至少有一个变量是堆变量。这些变量中的哪一个是global
/local
/heap
。
这些都是可用的信息,我真的很感兴趣解决这个难题的任何想法。阅读评论后
编辑:
如果我看一下运行时 - 存储组织链接(http://lambda.uta.edu/cse5317/notes/node33.html)有它很可能是v2
和v3
是具有最大的地址,v1
是因为堆变量的局部变量它位于堆栈和静态数据之间,并且是全局变量,它不会在运行时像本地机器一样在堆栈中声明,而是在二进制文件的.data节中声明。
我可能是错的,但我有强烈的感觉,这个问题没有任何意义。 –
可能相关:http://stackoverflow.com/q/1966920/1679849 –
感谢链接@squeamishossifrage。我编辑了我的问题。 – WillLur