C ++,Seg Faults和Memory Management

时间:2010-02-09 19:44:16

标签: c++ c memory-management

我正在从Java转向C ++并且非常喜欢它。我不喜欢的一件事是根本不理解记忆,因为Java过去常常为我做这件事。

我已经购买了一本书:内存作为C和C ++中的编程概念 - Frantisek Franek

我是否有一些很好的网站可以交互学习C / C ++和内存使用(教程,论坛,用户组)?

2 个答案:

答案 0 :(得分:5)

内存管理在C ++中几乎是自动的(有一些注意事项)。

大部分时间动态分配内存 使用局部变量(和普通成员变量),它们将自动构造和销毁。

当你需要指针时,请使用智能指针 首先使用boost :: shared_pointer< T>而不是指针 这将使您走上正确的路径并在错误的时间意外删除内存并且90%的代码将正确释放(不幸的是循环会导致问题(仅在泄漏方面)并且您需要相应地进行设计(但我们有其他智能指针来处理周期weak_ptr))

我的基本规则是类永远不会包含RAW指针。始终使用某种形式的标准容器或智能指针。使用这些;析构函数调用变为自动。

一旦你感觉开始阅读其他智能指针以及何时使用它们:

Smart Pointers: Or who owns you baby?

答案 1 :(得分:2)