У меня есть некоторые проблемы с использованием strcpy
с vector
экземпляров моего собственного класса. Вот класс:Использование strcpy с std :: vector
class elemente {
char name[5];
short val;
bool red;
};
Итак, я сделал вектор из этого класса:
vector<elemente> ele(1);
Но если я пытаюсь сделать эту операцию:
strcpy(ele.back().name, strtok(line, " "));
Я всегда получаю Сегментация Неисправность. Зачем?
Я использовал GDB для отладки моей программы, а переменная line
верна, а также, если я заменю вектор нормальным char *
, все работает нормально (программы не работают, но контент в порядке).
Что я могу сделать?
Поскольку результат 'strtok' имеет более чем 4-х символы? –
Вы программируете на C++, а не C. Так что избавитесь от функций 'strcpy' и' strtok' и измените тип 'elemente :: name' на' std :: string' – LihO
Невозможно, я проверил его с другим переменная, результат равен 2 символам – StefanEuSunt