1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <string.h> /* memcpy */
#include <stdlib.h> /* malloc */
#include <stdio.h> /* 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;
}
|