假设我有以下内容:
Elf_FIle_Header *fileHeader //struct pointer, points to start of the Elf file header
fileHeader->offset //byte offset from start of file to section headers
Elf_Section_Header *sectionHeader = (Elf_Section_Header *)(char *)fileHeader + fileHeader->offset
为什么上述行没有指向段头表的开头?如何指向节头表的开头?
答案 0 :(得分:0)
两种类型转换都具有比添加更高的优先级,因此您将使用指针算术添加到Elf_Section_Header *。 大概你想要:
Elf_Section_Header *sectionHeader = (Elf_Section_Header *)((char *)fileHeader + fileHeader->offset);