【发布时间】:2010-12-26 19:58:35
【问题描述】:
我一直在尽我最大的努力学习 C++,但我之前的培训在一个主要问题上存在不足:内存管理。我的主要语言都具有自动垃圾收集功能,因此从未真正需要跟踪所有内容。我曾尝试在线阅读 C++ 中的内存管理,但我怀疑我仍然遗漏了一些东西。
所以,这是一个多部分的问题:
- 关于内存管理,我需要了解的最低限度是什么? (或者,我到哪里去找)?
- 我在哪里可以获得中级和高级知识/教程/等(一旦我完成了基础知识)?
- 指针和引用之间的性能差异是什么?
- 我听说在循环中,您需要确保在循环重新迭代之前对任何新指针调用
delete。它是否正确?您需要对引用做些什么吗? - 有哪些经典的内存泄漏示例?
- 我需要了解以下哪些内容(以及我是否真的需要使用它们 - 如果需要,在哪里?):
mallocfreecallocrealloc
更具体地说:
**************************** 更新 *******************
这是为了解决评论一中对 lmgtfy 的引用(由 Ewan 撰写)。如果您开始阅读那里可用的信息,它对初学者没有用处。我认为这是一个很棒的理论,但它对这个问题既不相关也不有用。
【问题讨论】:
-
为什么有人投票关闭?这是一个完全有效的问题
-
同意。这是一个非常好的问题。
-
我认为你应该把这个问题分成更多的小块,对上述所有问题的任何答案都将长达几页。
-
@Christopher 正如其他人在下面所说的那样,这不是可以在 SO 回答的问题类型。我建议你按照 Neil 的建议去做,阅读一本关于 C++ 的好书,如果有什么你不明白的地方,请回答具体问题。
-
我忘了提到关于改变我生活的主题的最佳书籍。它与语言无关,但这本书是永恒的。我建议查看 Microsoft Press 的“代码完成”。如果微软一半的开发人员阅读这本书,那家公司的软件质量就会提高 1000%。
标签: c++ memory-management pointers reference