C++释放宽字符的内存

标签 c++ visual-studio-2005 oop

我根本无法删除我的 wchar_t 指针变量。 它在构造函数中通过以下方式初始化:

dir = new wchar_t;

我不应该通过以下方式删除它:

delete dir;

这个问题的原因似乎是调试断言失败。
表达式 _CrtIsValidHeapPointer(pUserData)

最佳答案

听起来堆已损坏。例如,如果您分配单个 wchar_t,但将多个字符写入该指针,则可能会发生这种情况。然后, future 与堆的交互(例如删除)可能会导致错误,因为代码中的断言被破坏了。

关于C++释放宽字符的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13473783/

相关文章:

C++ 复制构造函数清除 Derived* 的 vector<Base*>

asp.net - 安装 Visual Studio Express 2010

oop - 继承可以完全被组合取代吗?

c++ - iads.h/VS2005/W2003 SP2 - 哪个 SDK 有什么副作用?

c# - 为什么委托(delegate)在静态方法中使用时不能引用非静态方法?

ruby-on-rails - 在 Rails 中深度模块化/命名空间是否正常?我公司的代码库深入 4 到 5 个命名空间,我想知道这是否正常

java - 新创建的对象是否给我内存位置或保存新分配的内存位置地址的指针

c++ - 如何听Windows当前正在播放的声音?

c++ - 创建用于在函数内写入的文件的最简单方法?

c++ - 连接到主机错误