Я тестирую реализацию массивов Judy в Ubuntu 11.10 "libjudy-dev".
У меня странное поведение, возможная ошибка.относится к размеру val и ключа.
В этом примере, если я использую структуру TEST только с 1 int с большими ключами, то работает, но если я использую структуру 10 int с тем же ключом, это не 't, структура 10 int работает нормально с маленькими ключами.
страница руководства Джуди
На странице руководства сказано, что строка может быть любого размера.
#include <stdio.h>
#include <string.h>
#include <Judy.h>
/*struct TEST {
unsigned int size9;
};*/
struct TEST {
unsigned int size0;
unsigned int size1;
unsigned int size2;
unsigned int size3;
unsigned int size4;
unsigned int size5;
unsigned int size6;
unsigned int size7;
unsigned int size8;
unsigned int size9;
};
int main()
{
struct TEST *val;
char key[1024];
Pvoid_t array = NULL;
//strcpy(key, "0123456789_0123456789");
strcpy(key, "0123456789_0123456789_0123456789");
JSLI(val, array, key);
val->size9 = 10;
val = NULL;
JSLG(val, array, key);
if(val == NULL) {
printf("NULL\n");
} else {
printf("%u\n", val->size9);
}
return 0;
}