2012-06-11 27 views
0

我試圖爲所創建的鏈表Iv的對象實現一個析構函數。我做了一個名爲MakeEmpty的函數,我只是在析構函數中調用它。它正確地編制的第一次,但現在,我得到一個錯誤瞬間崩潰說:試圖破壞我的鏈接列表時出錯?

表達:_BLOCK_TYPE_IS_VALID(pHead-> nBlockUse)

有人可以幫助我弄清楚什麼是錯的?我運行了調試器並指出錯誤出現在代碼中,但我無法弄清楚什麼是錯誤的。

​​

這是MakeEmpty()函數

void WORD::MakeEmpty() 
{ 
alpha_numeric *p = (*this).front; 

if((*this).IsEmpty()) 
{ 
    cout <<"Already empty"<< endl; 
    return; 
} 

while(front != 0) 
{ 
    front = front -> next; 
    delete p;//<<<<---DEBUGGER SAYS ERROR HERE 
    p = front; 
} 
return; 
} 
+2

你是否遵守班級中的三條規則?錯誤聽起來像你缺少一個拷貝構造函數或一個拷貝賦值操作符。 –

+0

你刪除了兩次 – Dani

+0

@FlorianSowade ohh yeaa,就是這樣,把它作爲答案,以便我可以標記它是正確的 – Mike

回答

1

你聽從你們班rule of three?錯誤聽起來像你缺少一個拷貝構造函數或一個拷貝賦值操作符。