В редких случаях происходит сбой моей программы, и я не знаю почему. Я думаю, это может быть связано с тем, как я храню указатели на символы внутри вектора.
vector<char*> vec;
// here i store text for later
void pushToVector(const char *text) {
char *t = new char[strlen(text)+1];
strcpy(t, text);
vec.push_back(t);
}
// now i want to print the first element and then erase it
void print() {
if (vec.size() < 1) return;
printf("print: %s", vec.front());
char *t = vec.front();
vec.erase(vec.begin(), vec.begin()+1);
delete[] t;
}
Будет ли это работать всегда? или я что-то не так делаю?