1

我正在使用 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请通知我。

4

2 回答 2

1

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

于 2012-03-26T11:06:38.117 回答
1

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

于 2012-03-26T11:14:17.350 回答