我学习了 C#,现在正在学习 C++。释放内存的整个意义对我来说是新的,我想知道什么时候需要担心内存释放,什么时候不需要。
据我了解,我唯一需要担心内存释放的情况是当我使用new
运算符,所以我应该使用释放内存delete
.
但在这些情况下不需要释放内存:
- 类变量(成员),或静态变量。
- 函数中的局部变量。
- STL 系列(字符串、列表、向量等)。
这是真的?
还有其他情况我需要担心内存释放吗?
你基本上是对的:你需要平衡new
with delete
, new[]
with delete[]
, and malloc
with free
.
编写良好的 C++ 几乎不会包含这些内容,因为您将动态内存和生命周期管理的责任留给了合适的容器或管理器类,最值得注意的是std::vector
and std::unique_ptr
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)