int main()
{
struct HXmap *limitMap;
limitMap = HXmap_init(HXMAPT_DEFAULT,HXMAP_CKEY);
int a[]={1,2,3};
HXmap_add(limitMap,a,limitMap);
HXmap_add(limitMap,(a+1),BuyTree);
HXmap_add(limitMap,&a[2],main);
int price =1;
Limit* add = (Limit*)HXmap_get(limitMap,&price);
printf("Price: %d, Address %p LimitMap %p \n",price,add,limitMap);
return 0;
}
这段代码的输出在这里:
Price: 1, Address (nil) LimitMap 0x8ff5008
为什么HXmap_get()没有返回正确的地址?
会感激一些帮助。
答案 0 :(得分:1)
我没有安装libHX,所以这只是根据文档进行猜测......
因为你没有指定密钥是C字符串,也没有提供密钥大小,也没有给出自定义HXmap_ops
,所以它使用直接值比较而不是指向int
。< / p>
您可以直接使用price
作为密钥(不使用指针指向 - int
),也可以指定密钥大小。
HXmap_init5(HXMAPT_DEFAULT, HXMAP_CKEY, NULL, sizeof(int), 0);