使用XMLString :: release(XMLCh ** buf)

时间:2012-03-26 10:59:35

标签: c++ xml-parsing xerces-c

我正在使用xerces-c ++我似乎并没有真正使用XMLString::release ( XMLCh ** buf)所以现在我每次想要重用这样的局部变量时都会使用它:

XMLCh* xmlStringVar = XMLString::Transcode("name");
XMLCh* fieldName = fieldsNodeList[NbreFlds]->getAttribute(xmlStringVar));
XMLString::release(&xmlStringVar);
xmlStringVar = XMLString::Transcode("id");
XMLCh* fieldId = fieldsNodeList[NbreFlds]->getAttribute(xmlStringVar));

如果出现问题,如果您对函数XMLString::release有更清晰的描述,请告诉我。

2 个答案:

答案 0 :(得分:1)

看起来非常有效。正如XMLString::release的文档所说,使用它释放transcode()函数分配的内存。

答案 1 :(得分:1)

Xerces文档说:“实现将调用MemoryManager :: deallocate和然后将字符串转换为空指针。” 要将字符串分配给空指针,它需要字符串指针的地址。如果只是重新分配,那么传递指针(而不是指针的地址)就足够了。