你可以释放传递给xmlParseDoc()的缓冲区吗?

时间:2013-09-06 15:51:40

标签: libxml2

例如:

xmlDocPtr parseDoc() {
    buf = malloc(12);
    strncpy(buf, "<document/>", 12);
    xmlDocPtr doc = xmlParseDoc(buf);
    free(buf); /*** is this safe? ***/
    return doc;
}

documentation有点模糊,不清楚生成的树是否包含原始缓冲区中的所有信息,或者是否需要缓冲区保持有效。

1 个答案:

答案 0 :(得分:1)

是的,您可以在解析后释放缓冲区。我还建议使用xmlReadMemory来解析内存中的文档。它有一些有用的选择。