0

我的代码看起来像这样:

const char *msg = getMessageFromAnObject(); // gets one slot from a char **

return std::string ( msg );

现在,我需要释放味精还是隐含地照顾它。

谢谢。帕万。

4

2 回答 2

5

getMessageFromAnObject()返回 a的事实const char*表明您不需要释放返回值。但这只是 C API 中常用的一种约定——唯一确定的方法是查看文档,或者如果你有它的源代码。

于 2013-11-13T09:11:58.987 回答
2

这取决于您的对象的实现。谁是返回数据的所有者?如果您的对象将在其析构函数中释放内存,则可能没有必要在您这边释放内存。但是,如果该对象在该函数中分配了新内存(因此您是返回数据的所有者),则必须将其删除。

于 2013-11-13T09:08:39.047 回答