当我尝试使用 xerces“Visual Studio 2010”释放内存时我的项目崩溃了
我正在一个项目中工作,并且使用 xerces 库。当我尝试删除指针时,我的项目崩溃了。
这是源代码:
std::ostream& operator<<(std::ostream& target, const DOMString& s)
{
char *p = s.transcode(); // method from xerces
target << p;
delete [] p;
return target;
}
此方法在 Visual Studio 6 中运行良好(我正在尝试在 2010 年构建)。
I'm working in a project and I use the xerces library. When I try to delete a pointer my project crashes.
Here is the source code:
std::ostream& operator<<(std::ostream& target, const DOMString& s)
{
char *p = s.transcode(); // method from xerces
target << p;
delete [] p;
return target;
}
This method works fine in Visual Studio 6 (I'm trying to build in 2010).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
来自 xerces 文档:
看起来 xerces 使用
new[]
(可能是malloc
或某些自定义分配器)来分配缓冲区。保证缓冲区安全释放的唯一方法是:XMLString::release
From the xerces docs:
It seems that xerces allocates the buffer not with
new[]
(perhapsmalloc
or some custom allocator). The only way to guarantee that the buffer safely gets deallocated is with:XMLString::release