【发布时间】:2022-01-26 20:26:47
【问题描述】:
我有一个std::vector<const char*>,由.push_back("something") 填充。如何删除不包括std::string标题的内容? delete segfaults 和 std::free 需要 void* 并且它“无法使用 'const char *' 类型的左值初始化 [..]”。
【问题讨论】:
-
您不会删除字符串文字。如果您只推送文字,则无法删除它们。
-
如果你在推入字符串文字和动态分配的
char数组,你确实需要delete,你会发现几乎不可能将它们区分开来.在这种情况下,我可以推荐使用std::string端到端吗?
标签: c++ memory c++17 string-literals