使用c_str()和const char *进行适当的内存清理

时间:2015-06-02 16:55:52

标签: c++ memory-management stdstring const-char

我有一个带(a char * const *)的函数。我提供的数据是std :: string。所以我这样做:

delete cc;

这很有效。我的问题是我需要清理const char ala使用的内存:

call

或者cc只是指向std:string ...

中mem记忆位置的指针

2 个答案:

答案 0 :(得分:4)

它是指向std :: string中分配的内存的指针。当std :: string超出范围时,将释放内存。在那之后一定不要抓住指针!

答案 1 :(得分:2)

不,你不需要delete cc。它确实是std::string对象所持有的指针。

请参阅here

  

程序不得改变此序列中的任何字符。

     

返回的指针指向字符串对象当前使用的内部数组,以存储符合其值的字符。

请注意,c_str()返回的指针可能会因调用字符串的修改方法而失效。