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