gpt4 book ai didi

c++ - 在 xmlTextReaderGetAttribute() 之后释放 xmlChar 指针

转载 作者:太空宇宙 更新时间:2023-11-04 05:44:54 24 4
gpt4 key购买 nike

我之前成功使用了 xmlTextReaderGetAttribute(来自 xmlsoft.org),但是 API 文档要求我取消分配返回的 xmlChar*。现在我的应用程序在第二次(第一次通过 null)调用 free() 时崩溃,如下所示:

xmlTextReaderPtr reader = null;
xmlChar *attribVal = null;
//blah...
if (xmlTextReaderAttributeCount(reader) > 0) {
free((attribVal));

attribVal = xmlTextReaderGetAttribute(reader, (const xmlChar*)"super-Attrib");
if (xmlStrcasecmp(attribVal, (const xmlChar*)"monoMega-Attrib") == 0) {
free((attribVal));

我的项目是在 C++ 中,但 libxml2 和所有示例来自 xmlsoft.org使用标准 C。

最佳答案

直接使用xmlFree()代替free():

xmlTextReaderPtr reader = null; 
xmlChar *attribVal = null;
//blah...
if (xmlTextReaderAttributeCount(reader) > 0)
{
attribVal = xmlTextReaderGetAttribute(reader, BAD_CAST "super-Attrib");
if (attribVal)
{
...
xmlFree(attribVal);
}
}

关于c++ - 在 xmlTextReaderGetAttribute() 之后释放 xmlChar 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8437634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com