gpt4 book ai didi

c - 如何创建一个特定大小的指针,然后让它指向内存中的特定地址

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

我想使用指针一次移动一个字节的十六进制转储,直到找到 X 字节长的特定字节序列。为此,我需要将指针转换为 X 字节大小。例如,一个大小为3字节的指针。我知道如果我希望它是 2 个字节,我可以简单地使用 uint16_t 之类的东西,或者如果我希望它是 4 个字节,我可以简单地使用 uint32_t 。但这些都不起作用。

我必须首先指向我所在位置的内存块的开头,以便我可以一次移动一个字节。我怎样才能在不失去这个职位的情况下做到这一点?

最佳答案

这是不可能的。如果您的系统没有任何使用 3 字节存储的类型,那么您就无法拥有指向此类类型的指针。相反,您应该使用 unsigned char * 并从其指向的位置读取字节,并对它们执行某些操作。

例如,如果这 3 个字节是 int 的最低有效 3 个字节,采用大端格式,您可以编写:

unsigned char *ptr = /* find the right location */;

unsigned int foo = ptr[0] * 0x10000u + ptr[1] * 0x100u + ptr[2];

关于c - 如何创建一个特定大小的指针,然后让它指向内存中的特定地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29442298/

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