【发布时间】:2012-05-04 07:38:35
【问题描述】:
我有一个 CString 数组作为我班级的成员:
...
private:
CString mStrings[7];
...
尽管类的析构函数被正确调用,但我的分析工具告诉我,七个 mString 中的每一个都存在内存泄漏(每次我分配和释放我的类时)。
我认为 CStrings 自己管理它们的内存。我将它们放在一个数组中这一事实是否会改变这里的任何东西?
【问题讨论】:
-
显示代码。你的分析工具是什么,它什么时候运行,你的类是如何创建的等等等等。
-
您将需要向我们展示一些代码,拥有一个字符串数组并不会改变字符串管理自己的内存这一事实。如果您只是像显示的那样创建一个数组(在自动存储上) ,您无需显式地解除分配的内存。
-
您能否提供更多代码来显示您的实际操作以及错误是什么(最好是sscce)?另外,这是微软的 CString 还是另一个?它绝对不是标准的 C++,所以你应该提一下。
-
这方面的代码不多。对象通过 new 分配,然后通过 delete 释放。类本身不包含太多内容,主要是上面显示的 CString 数组。我用于泄漏检测的工具是“Memory Validator”。
标签: c++ arrays memory-leaks cstring