Как я могу изменить свой константный указатель на уникальный указатель? - PullRequest
0 голосов
/ 11 ноября 2018

Итак, я пытаюсь изменить свою игру и обнаружил проблему, в которой я не смог внести изменения:

У меня есть следующий код:

    std::string fileContents = "";
  const char* contentsPtr = fileContents.c_str();

Я попытался сделать это:

const std::unique_ptr<char> contentsPtr = fileContents.c_str();

Это не работает, так как нет конструктора для преобразования из char * в unique_ptr, так как я могу сделать это изменение?

1 Ответ

0 голосов
/ 11 ноября 2018

Вы не хотите, чтобы unique_ptr использовался ни для одного ресурса, которому не принадлежит .В этом случае указатель возвращается из c_str().Это все еще принадлежит объектам fileContents.Если / когда вы получите, что на самом деле получаете unique_ptr вокруг c_str (), то у вас позже будет повреждение памяти.

...