C++11 如何使用共享指针而不是malloc为char数组分配内存

C++11 如何使用共享指针而不是malloc为char数组分配内存,c++11,C++11,我有一个字符数组,我想用共享指针初始化它 我在下面这样写,但是语法错误。有人能建议需要修改什么才能使这项工作正常进行吗。我需要基于行和列的数组大小。maparray将包含大量的“*”字符。比如: *** * * *** std::shared_ptr<unsigned char*> maparray; maparray=std::make_shared<unsigned char*>(rows*cols); *** * * *** std::共享的ptr映射数组;

我有一个字符数组,我想用共享指针初始化它 我在下面这样写,但是语法错误。有人能建议需要修改什么才能使这项工作正常进行吗。我需要基于行和列的数组大小。maparray将包含大量的“*”字符。比如:

***
* *
***

 std::shared_ptr<unsigned char*> maparray;
 maparray=std::make_shared<unsigned char*>(rows*cols);
***
* *
***
std::共享的ptr映射数组;
maparray=std::使_共享(行*列);

您可以将
数组指定为

shared_ptr<unsigned char> sh (new unsigned char[10], std::default_delete<unsigned char[]>());
  • 请注意:make_unique()仅在C++14中可用

您可以通过将
数组指定为删除来使用该数组

shared_ptr<unsigned char> sh (new unsigned char[10], std::default_delete<unsigned char[]>());
  • 请注意:make_unique()仅在C++14中可用

非常感谢,这两种方法都非常有效。我使用独特的ptr,因为我对共享ptr没有任何具体要求。非常感谢,它们都能完美工作。我使用独特的ptr,因为我对共享ptr没有任何具体要求。