gpt4 book ai didi

c - 如何在C语言中读取某个地址处的字节?

转载 作者:行者123 更新时间:2023-11-30 18:24:17 25 4
gpt4 key购买 nike

我正在处理一些页表条目并有一个虚拟地址。每个页面上都有数据,并且虚拟地址映射到该页面。

如果我有一个 32 位虚拟地址,我如何“抓取”特定虚拟地址处的第一个字节?

int *virtualAddress = someaddress;
int byteAtAddress = *(virtualAddress);
int secondByte = *(virtualAddress + 4);

显然我得到的是 4 个字节而不是 1 个字节。我可以在这里使用什么技巧来只获取一个字节?

最佳答案

C 标准允许您将您拥有的内存地址转换unsigned char*:

unsigned char* p = (unsigned_char*)someaddress;

然后,您可以使用 p 上的指针算术一次提取一个字节的内存。请注意不要超出您拥有的内存 - 请记住,int 可能小至 16 位。

关于c - 如何在C语言中读取某个地址处的字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42416329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com