最小内存区间取内容

deknight 2010-05-23 07:56:42
假设内存中有字符串 "这是计算机"
它在内存中的位置不固定,有可能是动态分配的内存
有什么办法在最短时间和最小内存区间内找到它?
...全文
82 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
deknight 2010-05-24
  • 打赏
  • 举报
回复
如果已知程序起始和结束的内存块,如何快速高效的遍历这块内存得到需要的值?
snoring 2010-05-24
  • 打赏
  • 举报
回复
最好到C++或Delphi去问,C#对内存操作不是它的强项
deknight 2010-05-24
  • 打赏
  • 举报
回复
顶上去
  • 打赏
  • 举报
回复
这个应该到WinApi版块去问
字符串应该是分在进程的堆栈中
wuyq11 2010-05-23
  • 打赏
  • 举报
回复
string str = "";
GCHandle gch = GCHandle.Alloc(str, GCHandleType.Pinned);
{
int ptr = gch.AddrOfPinnedObject().ToInt32();
}
gch.Free();
http://topic.csdn.net/u/20100314/13/6490637b-21d1-4286-ad72-561c4520fcc3.html
兔子-顾问 2010-05-23
  • 打赏
  • 举报
回复
每个进程有独立的2G虚内存地址空间,2G的扩展地址空间,一共4G。而实际的内存中,有很多暗格是无法访问的,程序的代码段,常量数据段,操作系统保留内存,都是无法访问的,你无法直到某个内存是谁在使用的,如果你要访问其他进程的内存,需要先使用OpenProcess,然后才可以访问。

我的理解,无法整个内存内进行搜索。选择一个进程后,在这个进程的堆中搜索倒是可以。如果如你所说,是个常量,不知道如何搜索……

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧