因此,我试图更改自己的游戏,但发现了无法更改的问题:
我有以下代码:
std::string fileContents = "";
const char* contentsPtr = fileContents.c_str();
Run Code Online (Sandbox Code Playgroud)
我试图做到:
const std::unique_ptr<char> contentsPtr = fileContents.c_str();
Run Code Online (Sandbox Code Playgroud)
由于没有构造函数来进行从char *到unique_ptr的转换,因此它不起作用,那么如何进行此更改?
您不希望在您不拥有的任何资源周围使用unique_ptr 。在这种情况下,指针从返回c_str()。它仍然属于fileContents对象。如果/当您过去实际上在c_str()周围获得了unique_ptr时,您以后便会发生内存损坏。