在过去的几天里我很痛苦地学习了很多关于C++编程的知识。
我爱它:)
我知道我应该释放内存 - 现在在我的世界中存在黄金“每个malloc = free”或“每个new = delete”规则,但是我将它们用于相当简单的对象。
矢量呢?无论我在哪里,我都在使用vector.clear(),但这显然是不够的,因为我的内存泄漏很大。
你能指导我如何对待这件事?我应该删除矢量<string>?
*编辑
谢谢,您的意见让我想到了这个应用程序的运算,我将能够完全消除该向量。 :O
对不起 - 我开始解释我在这里的用例,并且发现了我真正需要的东西。就像你每天为18小时的最后3天编码一样:| *编辑2
这很疯狂。通过代码的小改动,我已经将内存使用量从2x130 mb(不断增长)消除为2x 13.5mb,不变的大小。感谢让我以另一种方式思考这个问题。
Btw。这样的自我代码审查得到了一个名字 - 任何人都记得吗当你问任何人(甚至你的母亲或狗)并开始解释你的问题时 - 突然间你自己解决这个5小时的问题,只是试图从另一个角度来看问题,或者试图总结一下它是什么所有关于。我经常发现自己被捕获...
由于您是内存管理的新手,可能您可以解释您是如何知道自己正在获取内存泄漏。测量内存泄漏的一些方法并不能真正反映出发生了什么。 – 2009-06-14 19:49:37
你可能想发布一些你如何使用矢量类的示例代码。例如,你有指向动态创建对象的向量吗? – 2009-06-14 19:57:03
好吧,我只是看到,我的应用程序执行导致越来越多的内存占用。我正在执行相当简单的操作(在两个进程中进行md5哈希,并与mpcih2绑定),对于我的测试,它完全是两千五百万次操作。一个进程发送给其他数据包(字符串),第二个为其计算散列值。在执行结束时,我已经拍摄了两次130 MB。这太正常了。 – IamDeveloper 2009-06-14 19:59:24