我有一个字符数组,我想用共享指针初始化它 我在下面写了这样的,但是语法错误。任何人都可以建议需要修改什么来使这项工作。我想要基于行和列的数组大小。 maparray将包含' *'的一堆字符。类似的东西:
***
* *
***
std::shared_ptr<unsigned char*> maparray;
maparray=std::make_shared<unsigned char*>(rows*cols);
答案 0 :(得分:2)
您可以通过将Array
删除指定为
shared_ptr<unsigned char> sh (new unsigned char[10], std::default_delete<unsigned char[]>());
默认情况下make_shared
不能用于数组。相比之下unique_ptr
(如果shared_ptr
没有硬性要求)是对数组的安静容忍。您可以使用unique_ptr
作为
unique_ptr<unsigned char[]> sh = make_unique<unsigned char[]>(10);