2011-05-30 90 views
0

我有一个ghashtable对象作为我班的成员。我在构造函数中创建了它的新对象。我反复调用这个函数。当我在每个方法调用时检查哈希表的大小时,它会给出0,即使我添加新的键值对也是如此。插入ghashtable内容被破坏

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)); 
} 

可能是什么这个问题背后的原因。

回答

0

C++字符串将超出范围并被破坏,并将散列表的悬挂指针留给无效内存。我不知道如果这是您程序中唯一的问题,但是通过查看您发布的部分可以看出问题。