AndreyHudz90
@AndreyHudz90
student

Можно ли с помощью shared_ptr объявлять массив int?

Имеет ли смысл объявлять массив int с помощью shared_ptr?
И если да, тогда как это делать? И как обращаться к такому массиву?
shared_ptr<int> sh(new int[100]); ???

п.с. вообще есть ощущение, что я не по детски туплю =)
  • Вопрос задан
  • 815 просмотров
Решения вопроса 1
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Да.
std::shared_ptr<int> p(new int[42], std::default_delete<int[]>());

Как обращаться... Разыменовать и обращаться по индексу. Впорос только зачем.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
Может быть std::array?

>>shared_ptr sh(new int[100]);
1. Вы говорите, что будете хранить 1 int
2. Вы создаете 100 штук int
3. И результат п.2. присваиваете в п.1, хотя сказали что будете хранить один int

Круто?
Ответ написан
petermzg
@petermzg
Самый лучший программист
Вы посмотрите как реализован деструктор в shared_ptr
Если он удаляет хранимый обьект через delete[] obj;, то можете использовать,
а вот если delete obj; то нет.
Так что скорее - НЕТ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы