C++;,libxslt:释放样式表后释放样式表文档会导致崩溃 我使用LIXXLM2和LIXSLT从C++程序中进行XML处理。为了使用XSL转换XML文档,我使用以下函数(删除了错误处理):

C++;,libxslt:释放样式表后释放样式表文档会导致崩溃 我使用LIXXLM2和LIXSLT从C++程序中进行XML处理。为了使用XSL转换XML文档,我使用以下函数(删除了错误处理):,c++,libxml2,libxslt,C++,Libxml2,Libxslt,问题是,程序在最后一行的第二行出现访问冲突(glibc说:free():无效指针:0x00000000026d8090*),导致程序崩溃 我在文档中找不到任何提示,说明xsltFreeStylesheet也释放了底层文档或其他内容,那么这里出了什么问题 xsltFreeStylesheet还释放底层文档或其他内容 有一些提示表明这种情况确实有可能发生。没有读到这篇文章,只读到这篇:。。。谢谢 xmlDocPtr transformXmlDocument( const xmlDocPtr

问题是,程序在最后一行的第二行出现访问冲突(glibc说:free():无效指针:0x00000000026d8090*),导致程序崩溃

我在文档中找不到任何提示,说明xsltFreeStylesheet也释放了底层文档或其他内容,那么这里出了什么问题

xsltFreeStylesheet还释放底层文档或其他内容


有一些提示表明这种情况确实有可能发生。

没有读到这篇文章,只读到这篇:。。。谢谢
xmlDocPtr
transformXmlDocument(
    const xmlDocPtr inputDocument,
    const std::string& stylesheetString
    ) {

    exsltRegisterAll();

    // Read the stylesheet document.
    xmlDocPtr stylesheetDocument = xmlReadMemory(
            stylesheetString.c_str(),
            stylesheetString.length(),
            "stylesheet.xsd",
            0, // No encoding set - get it from the file header.
            0  // No further options.
    );

    // Parse the stylesheet
    xsltStylesheetPtr stylesheet = xsltParseStylesheetDoc(stylesheetDocument);

    // Transform the document
    xmlDocPtr result = xsltApplyStylesheet(stylesheet, inputDocument, 0);

    // Free used resources
    xsltFreeStylesheet(stylesheet);
    xsltCleanupGlobals();

    // Here the program crashes
    xmlFreeDoc(stylesheetDocument);

    return result;
}