Ошибка сегментации - неверное чтение размера 8 - PullRequest
0 голосов
/ 30 января 2012

По какой-то причине следующий код C ++ приводит к ошибке сегментации:

#include <sstream>
#include <vector>

using namespace std;

string charToString(char c)
{
    stringstream ss;
    string s;
    ss << c;
    ss >> s;

    return s;
}

int main()
{
    vector<string> stringTable;

    for(int c = 0; c < 256; ++c){
        string s = charToString(c);
        stringTable[c] = s;
    }
}

Valgrind сообщает об ошибке Invalid read of size 8 в строке

stringTable[c] = s;

Но я не вижучто не так с этой строкой.Так что не так с этим кодом?

1 Ответ

4 голосов
/ 30 января 2012

Вы списываете конец vector.Дайте vector начальный размер с

vector<string> stringTable(256);
...