我一直在研究一个代码,其中有很多类。我将内存分配给构造函数中不同的对象数组。然而,当我认为一切正常时,我遇到了一个奇怪的错误。例如,假设我有一个名为Points的类,它有一个称为数据的双点数组。使用此指针时C++析构函数错误的原因是什么?
好吧,我现在发布的所有代码:
class Points
{
double *data;
Points::Points()
{
data = new double [C_NUMBER_OF_POINTS];
}
Points::~Points()
{
delete [] this->data;
}
};
调试我发现错误是与此指针后,我不知道为什么要这样?调用析构函数删除数据,而对象正在销毁,但它仍在内存中。我的问题是为什么它是这样的?
我得到的错误基本上是由于HandTracker.exe的内存处理不当
在0x778f15de未处理的异常:00000000: 操作成功完成。 大段引用
,如果我,如果我使用下面的析构函数中删除这个指针意义上的错误被修正
Points::~Points()
{
delete []data;
}
我的问题是不完全有关如何处理内存泄漏,它是关于与有关这一特定问题这个指针。这个指针背后的机制是什么使它产生这个错误?
请张贴准确的代码 - 在您的示例数据不是类 – 2012-08-08 01:46:28
的成员,您是否按照[三种规则(http://stackoverflow.com/questions/ 4172722 /什么,是最规则的三)? – 2012-08-08 01:47:40