C++ std::bad_alloc erreur

Je travaille sur un programme en C++ (C++ 98). Il lit un fichier texte avec beaucoup de lignes (10000 lignes). Ce sont des valeurs séparées par une tabulation, puis-je analyser dans le Vecteur des objets Vectoriels. Toutefois, Cela semble fonctionner pour certains fichiers (les plus Petits), mais l'Un de mes fichiers me donne l'erreur suivante (ce fichier a 10000 lignes et c'est 90 MO). Je devine que c'est une mémoire liée au problème?
Pouvez-vous svp m'aider?

Erreur

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

Code

void AppManager::go(string customerFile) {

    vector<vector<string> > vals = fileReader(customerFile);

    for (unsigned int i = 0; i < vals.size();i++){

        cout << "New One\n\n";

        for (unsigned int j = 0; j < vals[i].size(); j++){

            cout << vals[i][j] << endl;
        }

        cout << "End New One\n\n";
    }
}

vector<vector<string> > AppManager::fileReader(string fileName) {

    string line;
    vector<vector<string> > values;

    ifstream inputFile(fileName.c_str());

    if (inputFile.is_open()) {

        while (getline(inputFile,line)) {

            std::istringstream iss(line);
            std::string val;
            vector<string> tmp;

            while(std::getline(iss, val, '\t')) {

                tmp.push_back(val);
            }

            values.push_back(tmp);
        }

        inputFile.close();
    }
    else {

        throw string("Error reading the file '" + fileName + "'");
    }

    return values;
}
Avez-vous une trace de la pile qui permettrait de montrer où la bad_alloc est levée? (D'ailleurs, combien de RAM libre avez-vous?)
Je suis sur un serveur de mon université, je n'ai aucun contrôle dessus. Il est de ruiner Solaris et ma demande est prévu pour fonctionner sur elle. Ensemble de données a été fournie par eux
Comment puis-je obtenir une trace de la pile? Désolé, je suis novice en C++
Pour obtenir une trace de la pile, l'exécution de votre programme sous le débogueur. Lorsque l'exception est levée, le débogueur vous redonner le backtrace. Vous pouvez avoir gdb sur votre plate-forme Solaris a également dbx. En règle générale, vous utilisez un débogueur en donnant l'exécutable pour être débogué sur la ligne de commande, puis l'émission de la run de commande. Hélas, le manuel est votre ami.

OriginalL'auteur Achintha Gunasekara | 2013-10-08