我不知道如何適當的就是這個問題,但 -內存分配(C++)編譯時間/運行時間?
我好奇的編譯器是如何爲它的構造,甚至之前(甚至構造函數被調用之前的對象(內存分配),可將內存一邊去! )。
它是如何發生的基本數據類型?
這聽起來有點幼稚,但它究竟是什麼?
它是完全運行時間過程,或者它(編譯)有像任何計劃要做到這一點,做,在運行時,它在編譯期在手之前決定時間。我根本不知道!
對象,無論是原始類型,指針還是大類的實例都佔用一定量的已知內存。這種記憶必須以某種方式留給對象。在某些情況下,該預留存儲器被初始化。初始化是構造函數的作用。它們不會留出(或分配)存儲對象所需的內存。該步驟在調用構造函數之前執行。
換句話說,什麼時候從字面上ANY類型的變量的內存分配發生,在時間上,在哪一點?編譯(或運行時)的哪個步驟?
靜態變量可能會在可執行文件本身中被賦予空間(然後被內存映射到進程的地址空間中),所以它們在編譯時被完全分配。 :) – jalf
謝謝大衛...... :)但是這導致了一個小問題。 **內存分配**和**內存預留**!從你所說的話,我明白兩者之間是有區別的。你能解釋給我嗎? :) – jsp99
@jalf我忘記了這一點。我已將靜態變量添加到我稱爲保留的類別,而不是分配。 –