从内存地址中获取字节
Get Byte from memory address?
我仍然在学习c++,并花了几个小时试图找出一种方法来获得一个字节存储在某个内存地址,在我的情况下,所有(好吧,几乎所有)内存地址不是动态的-所以地址指向,例如变量不会改变。
所以我试图检索存储在已知内存地址的单个字节。例如:0x20000
我试图检索的字节是,例如,我们说0xEF
。
现在我如何检索字节不使用解引用操作符?所以基本上我需要得到0xEF
,而不必声明它是什么类型的数据类型,就像字面上只是物理地得到字节0xEF
。希望这对你有意义,我是个新手:/
现在我如何检索字节不使用解引用操作符?
如果不解引用被访问的地址,就不能这样做。您可以寻址的最小数据类型是char
。对于字节,通常使用typedef unsigned char uint8_t
。
因此,您必须使用reinterpret_cast<uint8_t*>(addr)
和解引用来访问内存地址以获得值。
解引用内存地址是获取字节值的唯一方法。
将内存地址类型转换为类型化指针,然后对其解引用是最直接的方法,例如:
unsigned char value = *(reinterpret_cast<unsigned char*>(0x20000));
然而,回答你的问题:
在不使用解引用操作符的情况下,如何检索字节 ?
可以使用memcpy()
或类似的函数间接解引用内存,例如:
#include <cstring>
unsigned char value;
std::memcpy(&value, (void*)0x20000, 1);
相关文章:
- 如何获取 BITMAPFILEHEADER 和 BITMAPINFOHEADER 的字节表示形式?
- 在 Linux 中使用 ioctl() 获取隐藏功能报告时,零字节消失
- 如何使用CAPL的诊断功能获取CAN传输的数据(256字节)?
- 获取嵌套 stl 容器的大小(以字节为单位)
- 如何从Little Endian UTF-16编码字节中获取C++std::string
- 如何在序列化后获取字节数组
- 如何从 Oracle 数据库中获取 qt 中 SQL 查询的传输字节大小?
- 函数获取参数的变量列表并将它们转换为一系列字节?
- 编码大于原始文本:如何获取零和一的字符串并将它们作为实际字节写入文件
- 如何使用V8引擎从C 获取JavaScript字节码
- 如何使用低级系统调用从 stdin 和输入文件中获取字节数
- 从 Windows::Storage::Streams::IBuffer 中获取字节数组
- 如何在 JNA 中获取字节数组作为从 C 字节指针返回的返回
- 如何从HBITMAP中获取字节数组
- 在c++中获取字节范围的HTTP GET请求
- 从c#中的非托管c++ DLL中获取字节数组上的指针
- 按位运算符从32位获取字节
- c++获取字节等价函数并执行
- 是否可以获取字节(或文本()变量的信息在WiFi中
- 从内存地址中获取字节