我的类中有一个动态数组,CString
我在类new
的构造函数中使用运算符来创建它,所以我在析构函数中写了一行来释放内存。它不会导致任何错误,但会导致运行时出现断点!错误是:Windows 在遗传算法.exe 中触发了一个断点。
这可能是由于堆损坏,这表明遗传算法.exe 或其已加载的任何 DLL 中存在错误。
这也可能是由于用户在遗传算法.exe 具有焦点时按 F12。
输出窗口可能有更多诊断信息。
代码是:
//in constructor
StringFormat = new CString[Info.VariablesCount + 1];
for (int i=0;i<=Info.VariablesCount;i++)
StringFormat[i] = "%2.3f";`
// in destructor
free(StringFormat);
注意它StringFormat*
是类的私有成员,我在这个类中也有一些其他的动态数组,但是我可以用 free 方法轻松地释放它们,这个问题只是CString
动态数组,所以我错过了什么?