2011-05-30 81 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++字符串將超出範圍並被破壞,並將散列表的懸掛指針留給無效內存。我不知道如果這是您程序中唯一的問題,但是通過查看您發佈的部分可以看出問題。