2014-02-24 20 views
0

我有一個做while循環,目的是建立一個包含可用dll列表的數組。向量的第一個元素變化值

do{ 
    DLL_List.push_back((char*)FindFileData.cFileName); 
    cout << "DLL 0 IS" << DLL_List[0]; 
    } 

while (FindNextFile(hFind, &FindFileData)); 

問題:DLL_List [0]的值在每次迭代時發生更改(使用新發現的DLL文件的名稱)!我可以看到它,感謝cout。爲什麼?我以爲push_back不會修改以前的,我錯了嗎?

+0

你可以發佈DLL_List的decleration嗎? – thisisdog

+0

問題可能出在你沒有向我們展示的一段代碼中。 'DLL_List'在哪裏創建?其他任何修改嗎?它的類型是什麼? – aldo

回答

3

看起來你正在存儲一個指向一個字符串的指針,當你調用FindNextFile時(雖然你忘了告訴我們究竟是什麼DLL_List,所以我不能完全確定)。

代替std::string。這將保持字符串的副本,而不僅僅是指向它的指針。

+0

非常感謝。你爲我節省了很多時間。 – user2370139

相關問題