有办法知道C#中一个字符串在内存中的地址么 有办法知道C#中一个字符串在内存中的地址么?如果可以的话我想读出一定长度的字节请问应该怎么做?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上的高人能说具体点么1.怎样得到这个string在内存中的地址2.知道地址之后怎样把内存中的内容读取到一个数组里面谢谢先~ 据说是可以的,但决不是通过MemoryStream 用unsafe关键字,就可以操作指针。通过指针的取址操作符,就可以获取一个变量的地址,然后显示就可以了。不过有用吗? fixed(char* pc = new string('a', 2)){ byte* ppc; ppc = (byte*)pc; ppc -= 20; for(int i = 0; i < 40; i++) { Console.WriteLine(*ppc++); }}别忘了函数签名加unsafestring结构有两个private field,一个指示字符数目,可以用reflection获取信息 楼上的方法可行。另外,托管的代码也是受控的,所以托管堆上的代码事实上也是可以通过指针调用来访问地址的,只不过MS封装了这些功能模块并以GABAGE机制来自动管理而已。 如何用正则表达式分割以下字符串? c# string 的用法 DataTable 与 DataAdapter.Update的问题 这是什么错误啊。。。高手指点啊。 如果说C#比别的语方更出色,请问他好在哪里? 请教如何获取 API 的所有参数名? 关于Interop.ADODB的问题,求求各位救救火啊 特别菜的问题,几乎不敢在这里提,可又解决不了…… C# and DirectX 为什么我用VC#作的程序在PDA下不能运行? 怎样把winform右上角的关闭去掉或使之无效啊? C#中WINFORM繼承問題
2.知道地址之后怎样把内存中的内容读取到一个数组里面谢谢先~
{
byte* ppc;
ppc = (byte*)pc;
ppc -= 20;
for(int i = 0; i < 40; i++)
{
Console.WriteLine(*ppc++);
}
}
别忘了函数签名加unsafe
string结构有两个private field,一个指示字符数目,可以用reflection获取信息
另外,托管的代码也是受控的,所以托管堆上的代码事实上也是可以通过指针调用来访问地址的,只不过MS封装了这些功能模块并以GABAGE机制来自动管理而已。