如何正确释放一组指针?

问题描述 投票:1回答:1

如果我有一个像std::set这样的指向动态对象的指针的容器,那么如何释放其元素?

int main()
{

    // new scope
    {
        int x = 10;
        std::set<int*> spi;
        spi.insert(new int(1));// elem is a dynamic object init from 1
        spi.insert(new int[3]()); // elem is a dynamic array of 3 default-init integers
        spi.insert(&x); // elem is address of stack memory object
    }
}

所以我如何有效地释放具有动态内存的元素?

  • 我知道我可以使用一组shared_ptrs或unique_ptr,但出于练习的原因,我想知道如何使用。
c++ dynamic-memory-allocation stdset
1个回答
-1
投票

您必须遍历容器的内容并释放与每个元素相对应的内存。

© www.soinside.com 2019 - 2024. All rights reserved.