Вернёмся к shared_ptr в С++
Dec. 6th, 2018 01:38 pmВот примерчик вполне стандартного использования shared_ptr.
Найдите ошибку, но главное, предложите способ её исправления.
Способ, желательно, приемлемый для практического использования в написании продакшен-кода, а не для починки лишь данного демонстрационного примера.
Найдите ошибку, но главное, предложите способ её исправления.
Способ, желательно, приемлемый для практического использования в написании продакшен-кода, а не для починки лишь данного демонстрационного примера.
// SharedDeath.cpp : showing dangers of shared pointers // Can you figure where the fix should be? using namespace std; void addElems(vector<shared_ptr<string>>& vec, const shared_ptr<string>& val, int num) { for (int i = 0; i < num; ++i) { vec.push_back(val); } } int main() { vector<shared_ptr<string>> vec; addElems(vec, make_shared<string>("Chicken"), 10); addElems(vec, make_shared<string>("Goat"), 10); addElems(vec, make_shared<string>("Pig"), 10); addElems(vec, vec[0], 100); // add the first element 100 times more return 0; }
