[英]how to find allocated memory by a variable?
class app {
public int x = 3;
static void Main(string[] args)
{
}
}
是否有可能获得x
变量分配的内存地址?
该示例可以在C
, C++
, C#
或D
。 我希望很清楚,谢谢
在C和C ++中,这很简单。 我将用C ++给出示例:
struct App
{
int x;
App() : x(3) { }
};
int main()
{
App a;
int * p = &a.x; // address goes here
}
当然没有“变量App::x
”之类的东西,因为App
只是类型 。 这种类型的,如每个实例 a
中的例子中,带有自己的一套部件的变量,并且容易获得的指针成员变量。 (C语言中的纯数据结构也是如此。)
请注意,C ++还有另一个相关功能:成员指针。 这使我们能够形成不透明的值int App::*pm = &App::x
,它本身并不指向任何内容,但仅在类内部携带有关App::x
偏移量的信息。 该动物可以与实例一起使用以获得实际值,例如a.*pm
。
跳过D和E。C#和F#(和其他CLR语言)-通常,任何局部变量都没有固定的地址。 可以使用托管调试器(即WinDbg + SOS)查找任何特定变量的地址,也可以将fixed
变量与互操作类一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.