如何检索特定变量的地址?

玛莎

我有一些代码 - 我想看看特定变量是如何放置到堆栈中的。

#include <iostream>
using namespace std;

int fun(char b, long c, char d){
short p,q,r;
int y;
/***return &b,&c,&d,&p,&q,&r,&y;***/ - this one was for purpose of what should be returned, it is not valid code}

int main(){
fun('a',123,'b');
return 0;
}

预期结果将是特定变量的地址,这就是我使用操作数 & 的原因。但是,我仍然不知道在我的代码中正确放置它的位置,即 MAIN 函数。

备注:函数实际上什么都不做,它只是计算机体系结构课程目的的练习。

雷托尔

如果您想捕获其中的地址fun以查看它们在堆栈中的位置(或它们在内存中的任何位置),并且您想将所有这些地址返回给main,您可以使用以下命令:

#include <iostream>
#include <map>
using namespace std;

map<const char*, void*> fun(char b, long c, char d) {
  short p, q, r;
  int y;
  return {
    { "b", &b },
    { "c", &c },
    { "d", &d },
    { "p", &p },
    { "q", &q },
    { "r", &r },
    { "y", &y },
    { "b", &b }
  };
}

int main() {
  auto results = fun ('a', 123, 'b');
  for (auto p: results) {
    printf("%s is at %p\n", p.first, p.second);
  }
}

对我来说它显示

b is at 0x7ffdec704a24
c is at 0x7ffdec704a18
d is at 0x7ffdec704a20
p is at 0x7ffdec704a36
q is at 0x7ffdec704a38
r is at 0x7ffdec704a3a
y is at 0x7ffdec704a3c

请记住,正如其他人所指出的,您不能main! 恕我直言,只在其printf内部进行调用会好得多fun不过不用担心!希望这会有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用mailjet API检索列表地址?

来自分类Dev

如何使用 odata 端点检索地址

来自分类Dev

如何打印布尔变量的地址?

来自分类Dev

如何从R中的data.frame中基于特定变量检索极端年份的数据?

来自分类Dev

如何从特定列检索数据?

来自分类Dev

如何检索特定版本的代理

来自分类Dev

如何在Java中打印变量的地址

来自分类Dev

如何“获取”特定变量

来自分类Dev

如何从电子邮件地址中检索姓名

来自分类Dev

如何通过按钮检索服务器地址

来自分类Dev

如何使用重载字符串检索对象的数字地址

来自分类Dev

如何通过按钮检索服务器地址

来自分类Dev

帧如何检索收件人的MAC地址?

来自分类Dev

如何检索可能的ssh攻击者的IP地址?

来自分类Dev

如何从日志文件中检索IP地址计数?

来自分类Dev

如何检索任何外部电子邮件地址?

来自分类Dev

如何检索订阅者电子邮件地址?

来自分类Dev

如何检索当前用户的电子邮件地址?

来自分类Dev

如何检索包含哈希值的GET变量

来自分类Dev

如何从Lua的父表中检索变量

来自分类Dev

Google ScriptDB:如何使用变量检索键值对?

来自分类Dev

如何从模块中检索导出的变量?

来自分类Dev

如何使用Python检索JavaScript变量?

来自分类Dev

如何从JavaScript变量中检索JSON数据

来自分类Dev

如何从对象味精中检索变量?

来自分类Dev

如何从 php 变量对象中检索值

来自分类Dev

如何使用变量从 LinkedHashMap 中检索值?

来自分类Dev

分组时如何检索列表变量的值

来自分类Dev

如何检索存储在 localStorage 中的对象的变量?