2012-11-20 42 views
1

我只是不能刪除我的wchar_t指針變量。 它就會在構造函數初始化通過:C++釋放一個寬字符的內存

dir = new wchar_t; 

,不應該我能夠通過將其刪除:

delete dir; 

此問題的原因似乎是一個調試斷言失敗。
表達_CrtIsValidHeapPointer(pUserData)

+5

在我們提出解決方案之前,我們需要更多信息來確定您的問題是什麼。你所描述的當然是可能的。 –

+0

是的,像什麼確切地阻止你刪除它? –

+4

您正在使用一個wchar_t?你確定'dir'不是兩個或更多寬字符嗎? – MSalters

回答

0

聽起來就像是堆被損壞了。例如,如果您分配了一個wchar_t,但可以將多個字符寫入該指針,則可能會發生這種情況。然後,未來與堆的交互(如刪除)可能會導致錯誤,因爲代碼中的斷言被破壞。