我查看了我在互联网上找到的 xerces 生成 XML 的示例。Transcode 函数似乎执行了一些编码,但它填充的缓冲区从未被释放。根据文档,您必须手动释放 ti:
注意:返回的缓冲区是动态分配的,调用者有责任在不再需要时将其删除。您可以调用 XMLString::release 来释放这个返回的缓冲区。
doc->release 可以从内存中释放它吗?
XMLCh tempStr[100];
XMLString::transcode("Range", tempStr, 99);
DOMImplementation* impl = DOMImplementationRegistry::getDOMImplementation(tempStr, 0);
XMLString::transcode("root", tempStr, 99);
DOMDocument* doc = impl->createDocument(0, tempStr, 0);
DOMElement* root = doc->getDocumentElement();
XMLString::transcode("FirstElement", tempStr, 99);
DOMElement* e1 = doc->createElement(tempStr);
root->appendChild(e1);
XMLString::transcode("SecondElement", tempStr, 99);
DOMElement* e2 = doc->createElement(tempStr);
root->appendChild(e2);
doc->release();