C++或者C#如何读取指定内存地址的值?
C++或者C#如何读取指定内存地址的值?只要读就行了,我想读一片连续地址的值!int*p;p=(int*)0x2FA400d8;cout<<*p<<endl;这样读,会报...
C++或者C#如何读取指定内存地址的值?只要读就行了,我想读一片连续地址的值! int *p;
p = ( int *)0x2FA400d8; cout << *p <<endl;这样读,会报错!我应该怎么做呢?我是新手,知道的最好写下简单的代码!只要能读就可以了! 展开
p = ( int *)0x2FA400d8; cout << *p <<endl;这样读,会报错!我应该怎么做呢?我是新手,知道的最好写下简单的代码!只要能读就可以了! 展开
7个回答
2013-04-17
展开全部
每个程序都有自己的内存地址,不是你随便指定一个就可以读的,要在该程序合法的地址段内才可以读。不能读不属于该程序的地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
若楼主能获得连续内存的地址值,可以这样读取其内容:(假设有一个地址是12ff7c)
const
int
*p;
p=0x12ff7c;
printf("%d",*p);
这三句可以读取并打印12ff7c这个地址的内容。
但请注意,12ff7c必须是十六进制地址值,p=0x12ff7c;前面的0x不能少,否则,编译将不能识别12ff7c是地址。用vc
6.0编译以上三行代码,可能会出现警告,楼主不用理会,继续编译、连接、运行,最后,是可以读出结果的。
const
int
*p;
p=0x12ff7c;
printf("%d",*p);
这三句可以读取并打印12ff7c这个地址的内容。
但请注意,12ff7c必须是十六进制地址值,p=0x12ff7c;前面的0x不能少,否则,编译将不能识别12ff7c是地址。用vc
6.0编译以上三行代码,可能会出现警告,楼主不用理会,继续编译、连接、运行,最后,是可以读出结果的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-17
展开全部
在WINDOWS下无法进行这个操作了.只能访问自己的程序空间,这种操作只能DOS下这种非保护模式下的操作系统
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以,,通过api函数就可以,,不过c#不能直接读取内存值,,不过可以调用系统的api
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询