在C++中有兩種方法可以聲明一個對象。例如:基於C++堆棧的對象分配
// The first way
vector<int> *nums = new vector<int>;
// The second way
vector<int> nums;
人們說第一個聲明在堆中分配對象,在堆棧中分配第二個對象。我可以想象如果矢量對象在堆中,它是如何工作的。編譯器只會在堆中找到一個空閒塊來存儲該向量。但是,如果將對象分配到堆棧上,我會不斷向該向量推送新元素,會發生什麼情況?會有足夠的內存空間嗎?如果不是,當編譯器的大小可以改變時,編譯器如何在堆棧中找到足夠大的內存塊來存儲該向量?
大初學者的問題,並很好地說明。 – 2015-03-18 21:59:28