Aqu*_*irl 9 c++ pointers smart-pointers unique-ptr
#include <iostream>\n#include <memory> // unique_ptr\n\nusing namespace std;\n\nint main()\n{\n    std::unique_ptr<char*> char_ptr;\n\n    char_ptr = (char*)"anisha";\n    return 0;\n}\n我想为代码中其他地方的 unique_ptr 分配一些值。
\n这会出现以下错误:char_ptr = (char*)"anisha";
error: no match for \xe2\x80\x98operator=\xe2\x80\x99 (operand types are \xe2\x80\x98std::unique_ptr<char*>\xe2\x80\x99 and \xe2\x80\x98char*\xe2\x80\x99)\n     char_ptr = (char*)"anisha";\nunique_ptr声明后如何给其赋值?
小智 4
使用 std::make_unique。这是编辑您的代码 -
#include <iostream>
#include <memory> // unique_ptr
using namespace std;
int main()
{
    std::unique_ptr<char*> char_ptr;
    //char_ptr = (char*)"anisha";
    char_ptr = std::make_unique<char*>((char*)"anisha");
    return 0;
}