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

use*_*015 3 c++ memory-management const-char stdstring

我有一个接受 (char* const*) 的函数。我提供的数据在 std::string 中。所以我这样做:

void blahblah(std::string str)
{
   const char * cc = str.c_str();
   ConstCharFunction(&cc);
}
Run Code Online (Sandbox Code Playgroud)

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

delete cc;
Run Code Online (Sandbox Code Playgroud)

或者 cc 只是一个指向 std:string 中内存位置的指针...

Mik*_*ews 5

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