由于要在C语言下做一个key->val列表用来查询,若在Qt下用QMap是很方便的,但在C语言下如何实现,由于高级语言用多了,很多基本的东西却忘了。下面笔者写了一个样例,仅供参考:(分配内存时没有作检查)
typedef struct
{
int key;
int val;
}map_t;
typedef struct {
int num;
map_t *p;
} maps_t;
maps_t nlist;
void map_init()
{
nlist.p = (map_t*)malloc(10 * sizeof(map_t*));
nlist.num = 0;
}
void map_add(int _addr, int _val)
{
nlist.p[nlist.num].key = _addr;
nlist.p[nlist.num].val = _val;
nlist.num++;
}
void map_list()
{
for(int i=0;i {
map_t p = nlist.p[i];
printf("addr=%d, time=%d\n", p.key, p.val);
}
}
void map_free()
{
free(nlist.p);
nlist.p = NULL;
nlist.num = 0;
}
// for test;
int main()
{
map_init();
map_add(1,10);
map_add(2,20);
map_add(3,30);
map_add(4,40);
map_add(5,50);
map_list();
map_free();
}
阅读(1403) | 评论(0) | 转发(0) |