Что означает «завершить вызов после выброса экземпляра std :: bad_alloc»? - PullRequest
0 голосов
/ 23 октября 2019

Я пишу функцию, которая открывает текстовый файл и читает каждую строку, добавляя ее к вектору строк (каждая строка - всего одно слово). Код компилируется, но завершается с ошибкой при попытке его запустить.

Вот ошибка, которую я получаю после вызова функции и попытки печати вектора:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted

ЕслиЯ вызываю функцию, но не печатаю вектор, я получаю Segmentation Fault

Я посмотрел эту ошибку в Интернете, но не смог найти точных определений того, что она означает. Из того, что я увидел, кажется, что эта ошибка вызвана использованием слишком большого количества памяти. Может быть, в моем коде есть что-то, что вызывает бесконечный цикл ?? Что именно означает эта ошибка, и как она применима к написанному мною коду?

 vector<string> readToVector(string fileTo) {
        vector<string> setVector;
        string temp;
        ifstream openSet(fileTo.c_str());
        if (openSet.is_open()) {
            while ( getline (openSet,temp) ) {
                    setVector.push_back(temp);
            }
        }
        else {
            cout << "Unable to open set file." << endl;
        }
    }

1 Ответ

0 голосов
/ 23 октября 2019

Неважно, я тупой. Я просто никогда не возвращал вектор в моей функции. Facepalm

...