我目前一直在使用可能會創建重量較大的對象的庫。具體來說,我正在創建與wave文件關聯的對象。如何檢測對象是否主要由堆棧或動態內存組成
現在創建波對象的實例(只是爲例)時,有沒有確定它在內存中被分配一個好辦法嗎?
例如,如果我實例在堆棧一個std ::矢量,我知道一些存儲器被分配在堆(即頭信息)和實際容器數據在堆中創建。所以大部分情況下,我不必擔心堆棧內存溢出。儘管我仍然可以選擇在堆中完全實例化對象。
但是讓我們說我不知道對象的實現。假設我正在使用一個在堆棧中創建大量數組的庫。這可能會導致問題。
所以我的問題:我們怎麼知道一個對象是如何「沉重」的記憶方式?
簡短的回答是:你不能。至少除非你使用工廠parttern,否則總是在堆上實例化你的對象。在這種情況下,答案總是「堆」,當然。 –