C++,Seg Faults和Memory Management

Ste*_*ano 6 c c++ memory-management

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

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

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

Mar*_*ork 5

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

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

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

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

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

聪明的指针:或谁拥有你的宝贝?

  • 是什么让你觉得它很慢?但不,我不会在任何地方推荐它.我建议将它作为学习智能指针的起点.使用正确的智能指针解决手头的问题(但你必须启动somwhere和智能指针是一个相当大的主题,以跳入).PS.我对模拟器中的智能指针没有任何问题(正确性为王,在显示它是瓶颈之后进行优化). (2认同)