Witam. Mam mały problem ze zrozumieniem pewnych kwestii. Powiedzmy, że mam std::string str, którego przekazuje do funkcji
static std::vector < std::string > split(const char * napis, const char * ograniczniki = "\n\t " ) {
std::vector < std::string > podzielony_napis;
char * n = new char[strlen(napis) + 1];
strcpy(n, napis);
for( char * pch = strtok( n, ograniczniki ); pch != NULL; pch = strtok( NULL, ograniczniki ) )
podzielony_napis.push_back( pch );
delete [] n;
return podzielony_napis;
}
w środku robię kopię napisu, a na końcu funkcji usuwam tę kopię. Dlaczego w wektorze znajdują się te wartości, które z "n" usunąłem, skoro w for on tworzy wskazniki i odwołuje się do tych wartości?