我一直在研究一個代碼,其中有很多類。我將內存分配給構造函數中不同的對象數組。然而,當我認爲一切正常時,我遇到了一個奇怪的錯誤。例如,假設我有一個名爲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