0
我有一个奇怪的问题。例如,如果我知道在位置直接从指针使用结构体
0x10000005
是我做的一个结构体。我有一个指针指向
0x10000000
如果我用指针操作,使其改为指向0x10000005,我可以用什么在0x10000005如果我知道是什么结构是吗?
我有一个奇怪的问题。例如,如果我知道在位置直接从指针使用结构体
0x10000005
是我做的一个结构体。我有一个指针指向
0x10000000
如果我用指针操作,使其改为指向0x10000005,我可以用什么在0x10000005如果我知道是什么结构是吗?
如果我用指针操作
这是一个粗略的说法。在32位x86系统上,指针将是4个字节。在64位x86系统上,指针将为8个字节。当然,我敢打赌,有一个系统的指针是5个字节,但我愿意把我的钱放在一个误解而不是一个晦涩的架构上。
的C11标准并保证这一点:
§6.7.2.1
15内的结构物,非位字段成员...有 地址,在增加的顺序它们被宣布。 A 指向适当转换的结构对象的指针指向其初始成员 初始成员...结构 对象中可能存在未命名的填充,但不在其开头。
这意味着获得一个对象的地址的非挂羊头卖狗肉的方式工作:
struct s* p = &so;
是。是的你可以。您向我们展示该情况的代码,然后我们会告诉您如何执行此操作。 – Beta
大约5小时前,这与你的问题有什么不同:[指针操作内函数?](https://stackoverflow.com/questions/32979898/pointer-manipulation-inside-function) –
这是一个奇怪的(字面上!)地址结构。 – EOF