У меня проблема с этим кодом. Я не могу получить ожидаемый ответ. Я искал это, но ничего не могу найти. Я не могу найти свою ошибку ..g_hash_table_contains возвращает неожиданное значение
Вот мой код работает с g_hash_table
# include <stdio.h>
# include <glib.h>
# include <stdlib.h>
GHashTable *hash = NULL;
int check_sth_blacklist(char *sth)
{
return g_hash_table_contains(hash,sth);
}
main()
{
hash = g_hash_table_new(g_str_hash,g_str_equal);
char *sth = (char*) malloc(32);
scanf("%s",sth);
g_hash_table_add(hash,sth);
scanf("%s",sth);
printf("%d\n",check_sth_blacklist(sth + sizeof(char)*2));
free(sth);
}
в моем входе я пишу:
cde
abcde
Я думаю cde
строка добавит g_hash_table , тогда, когда я прошу строку cde
в abcde
, она возвращает мне значение 0.
thx много. Я почти понял это. thx для того, чтобы сделать мой мозг ярким)) – merdan