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;
}
这段代码的输出在这里:
价格:1,地址(无)LimitMap 0x8ff5008
为什么 HXmap_get() 没有返回正确的地址?
希望得到一些帮助。
最佳答案
我没有 libHX安装,所以这只是根据文档猜测......
因为您没有指定键是 C 字符串,也没有提供键大小,也没有给出自定义 HXmap_ops
,所以它使用直接值比较而不是遵循指向 int 的指针
。
您可以直接使用 price
作为键(不使用指向 int
的指针),或者指定键大小。
HXmap_init5(HXMAPT_DEFAULT, HXMAP_CKEY, NULL, sizeof(int), 0);
关于c - HXmap_get 未使用 key 返回正确的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4982651/