HXmap_get не возвращает правильные данные с ключом - PullRequest
0 голосов
/ 13 февраля 2011
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 () не возвращает правильный адрес?

Буду признателен за помощь.

1 Ответ

1 голос
/ 13 февраля 2011

У меня не установлена ​​ libHX , так что это всего лишь предположение на основе документации…

Поскольку вы не указали, что ключи являются строками C, и не указали ключsize, также не указали пользовательский HXmap_ops, он использует прямое сравнение значений вместо указания указателя на int.

. Вы можете использовать price непосредственно в качестве ключа (без использования указателя наint) или укажите размер ключа.

HXmap_init5(HXMAPT_DEFAULT, HXMAP_CKEY, NULL, sizeof(int), 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...