开发者

content inserted into ghashtable being destroyed

开发者 https://www.devze.com 2023-03-08 23:44 出处:网络
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

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消