例如我有字符串的静态声明
std::string s("test");
内存将动态分配给字符串。当字符串 s
超出范围时
为字符串分配的内存将被释放?
如果是std::map
std::map <std::string, std::string> testMap;
同样,如果此 testMap
也超出范围,则调用 std::string
的析构函数并释放字符串的内存?
评论? 提前致谢:)
最佳答案
如果您谈论的是在std::string
的内部 进行的动态分配,那么是的,它会自动释放。
如果您使用new
来分配实际的std::string
,那么您之后需要使用delete
。
关于c++ - 释放在 C++ 中的 std::string 中分配的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13873544/