教你如何创建c++智能指针 char 字符数组


参考来源:

https://stackoverflow.com/questions/14004576/smart-pointer-array-deletor

https://stackoverflow.com/questions/43631415/using-shared-ptr-with-char

 

使用c++ 智能指针 unique_ptr 、shared_ptr 做为示例。

只能为了创建智能指针字符数组,如果你的项目不需要采用以下方法,不能使用智能指针,那么就使用你需要的。

示例一:使用 new 关键词创建对象(c++ 17)

std::unique_ptr<char[]> str(new char[4]);
char foo[] = "str";
std::copy(foo, foo + sizeof(foo), &str[0]);

 

std::shared_ptr<char[]> ptr(new char[size_]);

示例二:使用make_array

make_array 当前还在实验模块

https://en.cppreference.com/w/cpp/experimental/make_array

auto str = make_array<char>(4);

 

示例三:指定清除方法

std::shared_ptr<char> ptr(new char[size_], std::default_delete<char[]>());

 

示例四:使用unique_ptr<vector< ... >>

unique_ptr<vector<char>> temp = make_unique<vector<char>>(input.length());