如何将我的 const char 指针更改为唯一指针?
How can i change my const char pointer to unique pointer?
所以我正在尝试更改我的游戏,但我发现了一个无法进行更改的问题:
我有以下代码:
std::string fileContents = "";
const char* contentsPtr = fileContents.c_str();
我试过了:
const std::unique_ptr<char> contentsPtr = fileContents.c_str();
它不起作用,因为没有构造函数可以从 char* 进行转换
unique_ptr 那么我该如何进行更改呢?
您不希望 unique_ptr 围绕任何您 不拥有 的资源。在本例中,指针从 c_str()
返回。它仍然属于 fileContents 对象。 If/when 你过去实际上在 c_str() 周围得到一个 unique_ptr,然后你稍后会出现内存损坏。
所以我正在尝试更改我的游戏,但我发现了一个无法进行更改的问题:
我有以下代码:
std::string fileContents = "";
const char* contentsPtr = fileContents.c_str();
我试过了:
const std::unique_ptr<char> contentsPtr = fileContents.c_str();
它不起作用,因为没有构造函数可以从 char* 进行转换 unique_ptr 那么我该如何进行更改呢?
您不希望 unique_ptr 围绕任何您 不拥有 的资源。在本例中,指针从 c_str()
返回。它仍然属于 fileContents 对象。 If/when 你过去实际上在 c_str() 周围得到一个 unique_ptr,然后你稍后会出现内存损坏。