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 BSD license
UTHash is released under the BSD license, which allows its redistribution even for commercial use.
Pro Well documented
UTHash documentation is detailed, well organized and uses plenty of examples.
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.