содержимое вставлено в ghashtable уничтожается - PullRequest
0 голосов
/ 30 мая 2011

У меня есть объект ghashtable в качестве члена моего класса.Я создал новый объект этого в конструкторе.Я вызываю эту функцию итеративно.Когда я проверял размер хеш-таблицы при каждом вызове метода, он дает 0, даже если я добавляю новые пары ключ-значение.

void myFunction(string inString)
{
   string val = "some value";
   printf("Size:%d",g_hash_table_size(mTable));
   g_hash_table_insert(mTable,(void*)inString.c_str(),(void*)val.c_str());
   printf("Size:%d",g_hash_table_size(mTable));   
}

В чем может быть причина этой проблемы.

1 Ответ

0 голосов
/ 30 мая 2011

Строки C ++ выходят из области видимости и уничтожаются, оставляя хеш-таблицу с висячими указателями на недопустимую память. Я не знаю, знаю ли, что это единственная проблема в вашей программе, но это проблема, видимая при просмотре той части, которую вы опубликовали.

...