Вы сохраняете указатели на строки в своем векторе, но строка s
уничтожается при выходе из функции. Таким образом, вы сохраняете указатели на удаленные объекты.
Используйте строки вместо указателей. Строки легко копировать правильно, в отличие от указателей. Попробуйте это
std::vector<std::string> Split(std::string input) {
std::vector<std::string> ret;
std::istringstream f(input);
std::string s;
while (getline(f, s, ' ')) {
ret.push_back(s);
}
return ret;
}