这是不起作用的:
std::shared_ptr <char[]> ptr(new char[100]);
ptr[10] = '\0';
这个是有效的:
std::unique_ptr <char[]> ptr(new char[100]);
ptr[10] = '\0';
我收到了编译器错误C2676,意思是“未定义运算符或者没有到预定义运算符可接受的类型的转换方式”。你知道为什么会出现这种情况吗?