контент, вставленный в gashtable, уничтожается

У меня есть объект 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));   
}

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


person boom    schedule 30.05.2011    source источник


Ответы (1)


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

person Havoc P    schedule 30.05.2011