![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| wowka19 |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 30.11.2011 Репутация: нет Всего: нет |
Есть std::shared_ptr<int[]> p.
Хочу присвоить ему массив int, но в обоих случаях:
возникает ошибка компиляции где-то в недрах STL:
Что не так? |
||||||
|
|||||||
| baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 3 Всего: 7 |
Если память не изменяет, то shared_ptr при уничтожении вызывает delete (но не delete[], который нужен в Вашем случае). Чтобы работать с массивами нужно передавать свою версию delete (вторым параметром), которая будет корректно освобождать память. Ну и тип при инстанцировании нужно передавать без квадратных скобок. Такое, как Вы написали, нормально сработает с unique_ptr.
Вот хороший пример http://stackoverflow.com/questions/1306197...ould-it-be-used Это сообщение отредактировал(а) baldman88 - 29.4.2016, 09:02 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |