Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2716699
  • 博文数量: 416
  • 博客积分: 10220
  • 博客等级: 上将
  • 技术积分: 4193
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-15 09:47
文章分类

全部博文(416)

文章存档

2022年(1)

2021年(1)

2020年(1)

2019年(5)

2018年(7)

2017年(6)

2016年(7)

2015年(11)

2014年(1)

2012年(5)

2011年(7)

2010年(35)

2009年(64)

2008年(48)

2007年(177)

2006年(40)

我的朋友

分类: C/C++

2010-07-26 10:18:04

由于要在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) |
给主人留下些什么吧!~~