如何删除/释放字符串文字?

sms*_*are 3 c++ memory string-literals c++17

我有一个std::vector<const char*>我填充的.push_back("something")。如何删除不包括std::string标题的内容?delete段错误,并且std::free需要void*它“无法使用‘const char *’类型的左值初始化[..]”。

eer*_*ika 9

你可能delete只做你自己new。您没有用来new创建字符串文字,因此使用delete它们将导致未定义的行为。不要那样做。同样,您可能free只需要您malloc(加上一些相关的功能)malloc内部相关的功能)。

字符串文字具有静态存储期限。这意味着它们的存储将在程序结束时自动释放,无需您的干预。

您可以使用成员函数从向量中删除指针erase