C++程序中各種變量的內存分配
首先可以看下c++程序將內存分爲幾個區域:
1、棧。該內存區域一般是由操作系統自動分配的,我們不用考慮刪除問題。函數的參數,函數體中我們定義的變量,一般都是在棧中分配內存的。這些內存的分配一般在函數調用時才分配內存
2、堆。堆中分配的內存一般是程序員自己分配的,比如我們使用new(c++),malloc(c)來分配內存中,這些分配的內存都是放在堆中的。這些內存要由我們自己釋放,os在內存足夠使用的時候,不會去釋放這些內存
3、全局/靜態存儲區。所有的全局變量跟靜態變量都是在這個區域,如果全局變量沒有初始化,那麼這個 未初始化的全局變量與 靜態變量跟已經初始化的全局變量在相鄰的區域。
4、常量存儲區。這裏一般放的是字符串。
5、代碼段(文本段)存儲程序代碼的01進制文件