std::shared_ptr自体は配列に対する特殊化がなく、boost::shared_arrayも標準では提供されません。 ただ、std::default_deleteは配列に対する特殊化が提供されているので、以下のように書けます。 #include <iostream> #include <memory> #include <string> struct Data { int id; std::string name; Data() : id(0) {} Data(int id, const std::string& name) : id(id), name(name) {} ~Data() { std::cout << "dtor" << std::endl; } }; int main() { std::size_t n = 3; std::shared_ptr<Data> p(