Any C structure can be stored in a hash table using uthash. Just add a UT_hash_handle to the structure and choose one or more fields in your structure to act as the key. Then use these macros to store, retrieve or delete items from the hash table.
Ranked in these QuestionsQuestion Ranking
Pro Well documented
Pro Easy to use
UTHash is straight forward to use and is easy to install.
Con Not the fastest/slimmest option
There are other options which either show better performance characteristics or better memory usage (as in overhead per item), or sometimes both. Specific comparison micro benchmarks including plots for the data can be found here.