我特別使用C++: 當我在一個函數中創建一個對象時,這個對象會保存在堆棧還是堆上?在函數中創建的對象,是保存在堆棧還是堆上?
原因我所要求的是因爲我需要保存一個指向一個對象的指針,並且唯一可以創建的對象位於函數內,所以如果我有一個指向該對象的指針並且方法結束,指針可能會指向垃圾後。 - >如果我將一個指向對象的指針添加到列表(這是該類的成員),然後方法結束,那麼我可能會讓列表中的元素指向垃圾。
所以再次 - 當在一個方法中創建對象時,是將它保存在堆棧上(在函數結束後它將不相關)還是保存在堆上(因此我可以指向它而不會導致任何錯誤問題..)?
例如:
class blah{
private:
list<*blee> b;
public:
void addBlee() {
blee b;
blee* bp = &b;
list.push_front(bp);
}
}
可以忽略語法問題 - 以上只是理解的概念和困境......
謝謝大家!
只有一個小小的更正:你說的「全局變量」,也許它會被連擊說靜態分配 - 其中全局變量是可能的情況之一。 – Paulo1205
@ Paulo1205,的確如此。將更新。 – SergeyA