Я хочу динамически выделять массив из std::string
. Существует функция выделения. Я могу вызвать функцию столько раз, сколько хочу, из программы. Если указатель на массив уже выделен, я хочу сначала освободить память, а затем выделить новую.Динамически выделять массив std :: string
Вот что я пробовал:
std::string *names;
bool already_allocated = false;
void allocate(int n)
{
if(already_allocated)
{
delete names;
}
names = new std::string[n];
already_allocated = true;
}
int main()
{
allocate(5);
allocate(6);
return 0;
}
Но он дает ошибку во время выполнения во 2 allocate()
вызова для линии delete names
Могу ли я что-то недоразумение?
Почему бы не использовать 'std :: vector' и 'resize'? –
Andrei