代码之家  ›  专栏  ›  技术社区  ›  tkyle

如何在C中显示引用的实际值#

c#
  •  1
  • tkyle  · 技术社区  · 15 年前

    我正在学习更多关于C的知识,我想知道如何显示引用的实际值或结构的地址。我要找的是类似于以下C代码的代码:

        int i; 
        printf("int i resides at memory location %x",&i);
    
    3 回复  |  直到 15 年前
        1
  •  8
  •   Alex Martelli    15 年前

    在一个 unsafe 上下文,这将在C中起作用:

    int i = 10;
    int *ptr = &i;
    Console.WriteLine((int)ptr);
    

    我不知道这是否可以在安全的环境中完成,或者,如果可以,怎么做(我怀疑不能)。

        2
  •  6
  •   Blorgbeard    15 年前

    我知道,这不能用C来完成。.NET可以根据需要自由移动存储块,因此变量的地址最多只能具有临时意义。

        3
  •  0
  •   Marc Gravell    15 年前

    虽然你 可以 在某些情况下这样做,结果基本上没有意义。如前所述, References are not addresses -或者至少,他们没有 成为。因此,即使您正在尝试的方法有效,也不能保证所有实现都有效,而且通常也不是特别有用。如果你不确定,价值是不可靠的,如果你 请你改变你报告的事情…

    真的,你应该使用不同的工具 外部 语言…例如,windbg+sos。