访问精灵部分标题表

时间:2010-05-27 05:07:12

标签: c

假设我有以下内容:

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

为什么上述行没有指向段头表的开头?如何指向节头表的开头?

1 个答案:

答案 0 :(得分:0)

两种类型转换都具有比添加更高的优先级,因此您将使用指针算术添加到Elf_Section_Header *。 大概你想要:

Elf_Section_Header *sectionHeader = (Elf_Section_Header *)((char *)fileHeader + fileHeader->offset);