gpt4 book ai didi

c - 在C中,如何读取地址前的内存块

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:48 25 4
gpt4 key购买 nike

给定一个结构对象或指向一个结构对象的指针,我如何读取对象之前的 x 字节内存?例如,如果我知道对象从地址 10 开始,我如何从地址 10-x 读取 x 个字节到地址 9?谢谢。

最佳答案

从任何地址读取字节很容易:只需将指针转换为 char*,减去所需的字节数,然后开始读取,如下所示:

struct MyStruct {
int x;
int y;
} test[100];
...
void *ptr = &test[50];
...
char *start = (char*)prt;
start -= 10;
// You can read from the start pointer now

您需要确保您尝试读取的内存对于您的应用程序来说是合法的。内存需要是您静态或动态分配的更大结构的一部分。否则就是未定义的行为,可能会导致崩溃。

关于c - 在C中,如何读取地址前的内存块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15401208/

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