#include /* memcpy */ #include /* malloc */ #include /* printf */ #include "uthash.h" struct my_struct { char bkey[5]; /* "binary" key */ int data; UT_hash_handle hh; }; int main() { struct my_struct *s, *t, *bins = NULL; char binary[5] = {'\3','\1','\4','\1','\6'}; /* allocate our structure. initialize to some values */ s = (struct my_struct*)calloc(1UL,sizeof(struct my_struct)); if (s == NULL) { exit(-1); } memcpy(s->bkey, binary, sizeof(binary)); /* add to hash table using general macro */ HASH_ADD( hh, bins, bkey, sizeof(binary), s); /* look up the structure we just added */ HASH_FIND( hh, bins, binary, sizeof(binary), t ); if (t != NULL) { printf("found\n"); } return 0; }