【发布时间】:2015-08-20 15:18:57
【问题描述】:
我正在使用一个名为 tinyXML 的库,它解析 XML 文件。它的许多方法返回一个 const char*。
读完这个问题后: how to return a char array from a function in C
我现在相信,每次方法返回一个 char* 时,调用者(我)有责任明确释放它,因为它可能在堆上动态分配。我是对/错吗?我可以假设什么?
(如果我曾经写过一个库,我宁愿返回 std::string 而不是 char* 数组,因为它们对用户来说要简单得多。)
【问题讨论】:
-
grinninglizard.com/tinyxmldocs/index.html: "TinyXML可以编译使用或不使用STL。使用STL时,TinyXML使用
std::string类,完全支持std::istream、std::ostream、operator<<, 和operator>>。许多 API 方法同时具有const char*和const std::string&形式。”当然 C 没有std::string,所以仍然需要使用char*的选项(假设它可以从 C 中使用;我不确定)。此外,home page 建议“您可能需要考虑 TinyXML-2”。
标签: c++ c arrays pointers memory