我想动态分配一个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;
}
但它在第二次allocate()
调用该行时出现运行时错误delete names
我是不是误会了什么?