我正在使用一个名为tinyXML的库,它解析XML文件。其中许多方法返回const char*。
在阅读了这个问题之后: 如何从C函数中返回char数组 我现在相信每次方法返回char*时,调用者(即我)都需要显式释放它,因为它很可能是在堆上动态分配的。我是对的/错的?我能做出什么样的假设?
(如果我曾经编写过一个库,我会更愿意返回std::string而不是char*数组,因为它们对用户来说更简单。)
在阅读了这个问题之后: 如何从C函数中返回char数组 我现在相信每次方法返回char*时,调用者(即我)都需要显式释放它,因为它很可能是在堆上动态分配的。我是对的/错的?我能做出什么样的假设?
(如果我曾经编写过一个库,我会更愿意返回std::string而不是char*数组,因为它们对用户来说更简单。)
std::string
类,并完全支持std::istream
、std::ostream
、operator<<
和operator>>
。许多API方法都有const char*
和const std::string&
形式。当然,C语言没有std::string
,因此仍然需要使用char*
选项(假设它可以从C语言中使用;我不确定)。另外,主页建议“您可能要考虑TinyXML-2”。 - Keith Thompson