Understanding other people's code is hard, and while a lot of the process is language-agnostic, each language has different tricks, and C really requires having some tricks because the freedom afforded by the language can be used for shenanigans.
Obviously the first place you look is type definitions, because "show me your data, and I won't even need to see your algorithms" is still an excellent first-order heuristic. This is frequently not enough in C, since fields might be used in multiple and/or non-obvious ways, and ownership semantics can be pretty implicit outside the author's head.
You know what always works, if the code exists to stare at? Looking at the function to free a type. That's the money, that's where the implicit ownership thinking was encoded.