C#で変数のアドレスを見たい
c#で普段はポインタとかを使わないので、覚え書きとして記録。
コンパイル時はunsafeオプションの指定が必要です。
using System; using System.Text; using System.Diagnostics; using System.Runtime.InteropServices; namespace ConsoleApplication2 { class Class1 { static void Main(string[] args) { System.Diagnostics.Process hProcess = System.Diagnostics.Process.GetCurrentProcess(); Console.WriteLine("BaseAddress :0x" + Convert.ToString(hProcess.MainModule.BaseAddress.ToInt64(),16)); Console.WriteLine("EntryPoint :0x" + Convert.ToString(hProcess.MainModule.EntryPointAddress.ToInt64(),16)); Console.WriteLine("ModuleMemorySize:" + hProcess.MainModule.ModuleMemorySize); Console.WriteLine("WorkingSet :" + hProcess.WorkingSet64); func(); } static unsafe void func() { int a = 0x12345678; int *b = &a; Console.WriteLine("0x" + Convert.ToString((int)b,16)); Console.Read(); } } }