Значение первого элемента вектора

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?
  • 0
    Проблема, скорее всего, в куске кода, который вы нам не показываете. Где DLL_List ? Что-нибудь еще изменяет это? Каков его тип?
Теги:
vector

1 ответ

3
Лучший ответ

Похоже, вы сохраняете указатель на строку, которая изменяется при вызове FindNextFile (хотя вы забыли указать нам, что именно DLL_List, поэтому я не могу быть полностью уверен).

Вместо этого сохраните std::string. Это сохранит копию строки, а не только указатель на нее.

  • 0
    Спасибо, это было очевидно. Вы сэкономили мне много времени.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню