gpt4 book ai didi

c - 谜题 - 确定哪些地址属于全局/局部/堆变量

转载 作者:太空宇宙 更新时间:2023-11-04 00:01:43 24 4
gpt4 key购买 nike

我有以下难题要解决,但我不确定我该怎么做。它说:

有一个 Ubuntu Linux C 程序可以输出变量的地址。

v1: 0xa156128
v2: 0xff97410c
v3: 0xf750e34b
v4: 0x804a0c0

我知道该程序不使用共享内存,并且这些变量中至少有一个是堆变量。这些变量中的哪一个是 global/local/heap

这就是所有可用的信息,我对解决这个难题的任何想法都很感兴趣。

阅读评论后编辑:

如果我查看运行时 - 存储组织链接 ( http://lambda.uta.edu/cse5317/notes/node33.html ),v2v3 似乎是具有最大地址的局部变量, v1 是堆变量,因为它位于堆栈和静态数据之间,v4 是全局变量,它不像本地变量那样在运行时在堆栈上声明,而是在二进制文件的 .data 部分。

最佳答案

尝试分析/proc/PID/maps 的内容(参见 proc(5))。我相信这是确定地址所属内存区域的最正确方法。

关于c - 谜题 - 确定哪些地址属于全局/局部/堆变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40556827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com