首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个特定大小的指针,然后让它指向内存中的特定地址

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

Stack Overflow用户
提问于 2015-04-04 11:09:39
回答 1查看 100关注 0票数 0

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

我必须从指向我所在位置的内存块的开头开始,这样我就可以一次移动一个字节。我怎样才能做到这一点而又不丢掉那个职位呢?

EN

回答 1

Stack Overflow用户

发布于 2015-04-04 11:15:01

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

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

代码语言:javascript
复制
unsigned char *ptr = /* find the right location */;

unsigned int foo = ptr[0] * 0x10000u + ptr[1] * 0x100u + ptr[2];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29442298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档