我正在使用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
有更清晰的描述,请告诉我。
答案 0 :(得分:1)
看起来非常有效。正如XMLString::release的文档所说,使用它释放transcode()函数分配的内存。
答案 1 :(得分:1)
Xerces文档说:“实现将调用MemoryManager :: deallocate和然后将字符串转换为空指针。” 要将字符串分配给空指针,它需要字符串指针的地址。如果只是重新分配,那么传递指针(而不是指针的地址)就足够了。