我什么时候需要释放记忆?

use*_*067 8 c++ memory

我学习了C#,现在我正在学习C++.释放记忆的全部意义对我来说都是新的,我想知道什么时候我需要担心释放内存以及什么时候不需要.

根据我的理解,我唯一担心内存释放的情况是,当我使用newoperator时,所以我应该通过使用释放内存delete.
但在这些情况下,没有必要释放内存:

  • 类变量(成员)或静态变量.
  • 函数中的局部变量.
  • STL系列(字符串,列表,矢量等).

这是真的?
还有其他情况我不得不担心释放内存吗?

Ker*_* SB 10

基本上,你得到它的权利:你需要平衡newdelete,new[]delete[],并mallocfree.

精心编写的C++将包含几乎没有的,因为你离开了动态内存和生命周期管理的responsibiltiy到合适的容器或管理类,最显着的std::vectorstd::unique_ptr.