c++ - 启动 C++ 项目。我应该担心释放动态分配的内存吗?

标签 c++ garbage-collection memory-management

我对 C 相当精通,在 C 中释放内存是必须的。

但是,我正在开始我的第一个 C++ 项目,我听说过一些关于如何通过使用共享指针和其他东西不需要释放内存的事情。

我应该在哪里阅读?这是对正确的 delete C++ 功能的有值(value)的替代吗?它是如何工作的?

编辑

我很困惑,有些人说我应该使用 new 分配并使用 smart pointers 进行释放过程。

其他人说我一开始就不应该分配动态内存。

其他人说,如果我使用 new,我也必须像 C 一样使用 delete

那么哪种方法被认为更标准并且更常用?

最佳答案

Where should I read about this?

Herb Sutter 的 Exceptional C++和 Scott Meyers 的 More Effective C++都是很好的书籍,详细介绍了该主题。

网络上也有很多讨论(谷歌或 StackOverflow 搜索“RAII”或“智能指针”无疑会产生很多好的结果)。

Is this a valuable replacement for proper delete C++ functionality?

当然。不用担心清理资源的能力,尤其是在抛出异常时,是使用 RAII 和智能指针最有值(value)的方面之一。

关于c++ - 启动 C++ 项目。我应该担心释放动态分配的内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2723505/

相关文章:

Python numpy memmap 矩阵乘法

javascript - JS 字符串/数字和垃圾回收

C# 垃圾收集 -> 到 C++ 删除

javascript - Three.js 中的内存泄漏

c++ - SDK 实现 lib/inc/dll

c++ - C++ 数组上指针数学的未定义行为

c++ - 模板类中没有名为 X 的类模板

c++ - 使用 std::bitset 进行双重表示

c# - 为什么不收集辅助线程中使用的对象

objective-c - 背景 UIImage 成为 Zombie 委托(delegate)