I have a ghashtable object as member of my class. I have created new object of it at constructor. I am calling this function iteratively. When i checked the size of hashtable at each method call it's giving as 0, even if i eep on adding new key-value pairs.
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_tabl开发者_StackOverflow社区e_size(mTable));
}
What could be the reason behind this problem.
The C++ strings are going out of scope and getting destroyed, leaving the hash table with dangling pointers to invalid memory. I don't know if know if that's the only problem in your program but it's a problem visible from looking at the part you posted.
精彩评论