繁体   English   中英

直接从指针使用结构

[英]Using a struct directly from pointer

我有一个奇怪的问题。 例如,如果我知道

0x10000005

是我制作的结构。 我有一个指针指向

0x10000000

如果我使用指针操作并使其指向0x10000005,如果我知道那里有什么结构,可以使用0x10000005上的内容吗?

如果我使用指针操作

这是一个粗略的陈述。 在32位x86系统上,指针为4个字节。 在64位x86系统上,指针将是8个字节。 当然,我愿意打赌有一个指针为5字节的系统,但是我愿意把钱花在误解上而不是晦涩的体系结构上。

C11标准确实保证了这一点:

第6.7.2.1条

15在结构对象中,非位字段成员...的地址按声明的顺序增加。 指向经过适当转换的结构对象的指针指向其初始成员。结构对象内可能存在未命名的填充,但在其开始处没有。

这意味着获取对象地址的非欺骗性方法有效:

struct s* p = &so;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM