我根本无法删除我的 wchar_t 指针变量。 它在构造函数中通过以下方式初始化:
dir = new wchar_t;
我不应该通过以下方式删除它:
delete dir;
这个问题的原因似乎是调试断言失败。
表达式 _CrtIsValidHeapPointer(pUserData)
最佳答案
听起来堆已损坏。例如,如果您分配单个 wchar_t
,但将多个字符写入该指针,则可能会发生这种情况。然后, future 与堆的交互(例如删除)可能会导致错误,因为代码中的断言被破坏了。
关于C++释放宽字符的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13473783/