直接从指针使用结构

时间:2015-10-07 02:29:17

标签: c pointers

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

0x10000005

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

的指针
0x10000000

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

1 个答案:

答案 0 :(得分:0)

  

如果我使用指针操作

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

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

  

§6.7.2.1

     

15在结构对象中,非位字段成员......具有   地址按声明的顺序增加。一个   指向结构对象的指针,适当转换,指向它   初始成员...结构中可能有未命名的填充   对象,但不是在它的开头。

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

struct s* p = &so;
相关问题