A simple hash table in C
I was surprised recently when looking at different hash tables that have been implemented in C to discover that the standard library includes its own hash table.  They are even part of POSIX.  There is a reason you have never heard of it, or if you have you have never used it.  In true POSIX fashion they are close to useless.  The implementation doesn't allow you to modify the table after it has been created, you have to pass in all the data when you create the table.  There is no add or delete and you can't change any value you pull from the table.  It also stores the data in a static area local to the function so you can only use a single table in a program at a time.  It doggedly commits every C stdlib sin possible.