c++ - 释放在 C++ 中的 std::string 中分配的内存

标签 c++ memory

例如我有字符串的静态声明

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/

相关文章:

C++堆栈数组限制?

assembly - WC vs WB内存? x86_64上的其他类型的内存?

Android - 减少 Bitmap Drawables 的内存使用

java - Worklight 项目在构建时出现内存不足错误

java - 如何查找 Java 内存泄漏

c++ - *(volatile unsigned int *) 0x00 = 0x00; 的含义

c++ - 可以将套接字从非阻塞更改为阻塞然后再次非阻塞吗?

c++ - 将 vector 转换为数组 - 是否有 'standard' 方法来执行此操作?

c++ -/lib64/libstdc++.so.6 找不到 CentOS 7.3

c++ - 为什么不能将字符串文字连接到 __FUNCTION__?