c - HXmap_get 未使用 key 返回正确的数据

标签 c linux dictionary data-structures

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/

相关文章:

python - 如何在只有一个密码提示的情况下实现具有root权限的多个命令?

Linux Mint 17.2 屏幕分辨率

python - 如何将 .csv 文件中的日期时间字符串列拆分为单独的日期和时间列?

c++ - 使用 map 计算每个单词在文件中出现的次数。 (c++)

c - Ncurses:刷新非重叠窗口会刷新整个屏幕。如何避免这种情况?

c - strncpy 在不同 IDE 中的行为

java - 比较java中的int值?

javascript - 如何使用javascript将字典列表中的数字字符串转换为整数?

c - 将一个结构体分配给 C 结构体中的另一个结构体

c++ - 反斜杠后是否允许空格以继续一行(在 C/C++ 中)