gpt4 book ai didi

c++ - 动态分配 std::string 数组

转载 作者:搜寻专家 更新时间:2023-10-31 00:39:06 24 4
gpt4 key购买 nike

我想动态分配一个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;
}

但是在 delete names 行的第二次 allocate() 调用中出现运行时错误

我是不是误会了什么?

最佳答案

您必须使用 delete [] names; 因为您要删除一个字符串数组,delete names; 删除单个对象。

关于c++ - 动态分配 std::string 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16872094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com