如何在可视C++中读取内存地址
How to read a memory address in Visual C++?
在ANSI C中,我可以这样做:
const long *address = 0x00000002; /* Example address */
printf("0x00000002 -> %ld", *address);
控制台将显示该内存地址的内容。但是 VC++ 中的代码抛出:
错误 C2440:"正在初始化":无法从"int"转换为"常量长 *"
是否有从 VC++ 读取内存地址的本机方法,或者我必须调用 API?
提前谢谢。
您的地址表示为整数。您需要将其强制转换为适当类型的指针:
const long *address = reinterpret_cast<const long *>(0x00000002);
你需要用标准C++执行这种转换。我不知道你为什么认为在标准C++中可以省略演员表。
当然,当你运行你的代码时,你会遇到分段错误。
要设置该地址,请使用类似
const long* address = (const long*) 0x0000002; // C style
或
const long* address =
reinterpret_cast<const long*>(0x000002); // C++ style
顺便说一句,在大多数系统上,0x0000002不是有效的地址(在应用程序的通常虚拟地址空间中)。请参阅关于虚拟内存和虚拟地址空间的维基页面。
相关文章:
- 我可以在没有任何锁的情况下从不同的线程读取内存缓冲区吗?
- SAP Netweaver.C++ 错误:无法读取内存
- c++ 结构指针在初始化为 NULL 时无法读取内存
- GDB Python模块读取内存内容
- 内存池和<无法读取内存>
- 读取内存值(实时)最佳实践
- C++无法读取内存地址
- 构造函数问题<无法读取内存>
- C 螺纹池具有共享仅读取内存
- C++ 读取内存地址/指针和偏移量
- C++字符串无法读取内存
- 调用函数时,c++无法使用自定义类读取内存
- 无法读取内存以删除对象数组
- ConstantStruct或ConstantArray读取内存内容
- 如何在可视C++中读取内存地址
- C++:从注入的DLL读取内存的好方法是什么?
- C++ 对象的实例无法读取内存
- <无法读取内存> c++
- 内核驱动程序读取内存未发送整个字符串
- 在C++中嵌入 Python 的错误:无法读取内存