如何读取指定内存地址中的内容?

benny-lee 2009-05-13 02:56:00
如何读取指定内存地址中的内容?如:
指定内存地址: 0xc03441a0
如何获取这个地址的内容?
谢谢。
...全文
634 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
benny-lee 2009-05-13
  • 打赏
  • 举报
回复
也就是说首先得知道指定内存地址的数据类型?
机智的呆呆 2009-05-13
  • 打赏
  • 举报
回复
从语法上,指针可以实现~~~但前提得让os同意~~~~
benny-lee 2009-05-13
  • 打赏
  • 举报
回复
如果在linux中应该如何?
pathuang68 2009-05-13
  • 打赏
  • 举报
回复
学习了
windowsxp0925 2009-05-13
  • 打赏
  • 举报
回复
http://bbs.itzhe.cn/thread-4413-2-771.html

//引用于http://bbs.itzhe.cn/thread-4413-2-771.html
tc下面有专用的读取内存的函数!不用这么麻烦!包含在dos.h中 int peek(unsigned segment, unsigned offset) //从内存中读取一个字(16位的) int peekb(unsigned segment,unsigned offset) //从内存中读取一个字节(8位的) unsigned segment-----段地址 unsigned offset------偏移量
crst_zh 2009-05-13
  • 打赏
  • 举报
回复
崩掉的原因是 你强制转化成int*,一次读取4字节,(32bit机器上)。如果知道数据类型就可以了。
T* p = (T*) (unsigned long)0x0xc03441a0;
lingyin55 2009-05-13
  • 打赏
  • 举报
回复
1、你要知道这个地址保存的数据类型,比如一个字符型
char *p = (char *)(unsigned long)0xc03441a0
2、你要保证读取这个内存值的行为不是非法的
coverallwangp 2009-05-13
  • 打赏
  • 举报
回复
不能直接读吧。下面代码运行会崩掉


#include <iostream>
void main()
{
unsigned int *p;
p = (unsigned int *)0xc03441a0;

std::cout << *p << std::endl;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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