程序中 我定义一个string变量  并给它赋值
string a = "asbsdad";
 程序会开辟一个内存空间给a
 我要如何获得这个内存空间的起始地址 字节长度?

解决方案 »

  1.   

    你获得了有什么用?1.托管堆内存由GC管理,每一次内存回收都可能改变对象的地址,不是固定不变的...2.因为字符串驻留,相同值的不同字符串对象地址可能相同,所以.NET不允许直接修改字符串对象地址...
      

  2.   

                    string a = "asbsdad";
                    GCHandle handle = GCHandle.Alloc(a, GCHandleType.Pinned);                IntPtr address = handle.AddrOfPinnedObject();
      

  3.   

    另外还有一点...字符串对象每次赋值的值如果不同,托管堆地址也会改变...实际上是创建了一个新的string对象,即string不可变...