如果声明std::vector<A *>,则将内存分配到哪里?我知道new动态分配内存,但是矢量的内存应该静态分配。我想知道内存发生了什么。

    typedef std::vector<A *> AArray;

    void myFunction()
    {
        AArray aarray;
        aarray.push_back(new A());
        aarray.push_back(new A());
    }

最佳答案

AArray aarray;将在堆栈上为您的向量分配内存。

aarray.push_back(new A());将在堆上构造一个A,然后返回指向它的指针,该指针将放置在您的容器中。

关于c++ - 在以下代码中,内存将分配到哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17921629/

10-11 19:52