| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > shared_ptr<int[]> непонятная ошибка компиляции |
| Автор: wowka19 29.4.2016, 06:48 | ||||||
| Есть std::shared_ptr<int[]> p. Хочу присвоить ему массив int, но в обоих случаях:
возникает ошибка компиляции где-то в недрах STL:
Что не так? |
| Автор: baldman88 29.4.2016, 08:57 |
| Если память не изменяет, то shared_ptr при уничтожении вызывает delete (но не delete[], который нужен в Вашем случае). Чтобы работать с массивами нужно передавать свою версию delete (вторым параметром), которая будет корректно освобождать память. Ну и тип при инстанцировании нужно передавать без квадратных скобок. Такое, как Вы написали, нормально сработает с unique_ptr. Вот хороший пример http://stackoverflow.com/questions/13061979/shared-ptr-to-an-array-should-it-be-used |