使用C語言編程,實際上使用的内存隻有一種虛拟内存。根據功能的不同在C語言中又将虛拟内存為分三類:棧區、堆區、靜态數據區,無論單一變量還是數組,其内存分配都是如此;
1、棧區:一般每一個函數對應一個棧區,在編譯原理中稱為棧幀;
2、靜态數據區:這實際上對應于生成的可執行文件的data區段,因為這個區段在生成的可執行文件中,因此是“靜态的”;
3、堆區:堆區是最複雜的,有操作系統負責堆管理,但是當用C語言編譯器生成一個可執行文件并且運行時,它會默認建立一些堆。
使用C語言編程,實際上使用的内存隻有一種虛拟内存。根據功能的不同在C語言中又将虛拟内存為分三類:棧區、堆區、靜态數據區,無論單一變量還是數組,其内存分配都是如此;
1、棧區:一般每一個函數對應一個棧區,在編譯原理中稱為棧幀;
2、靜态數據區:這實際上對應于生成的可執行文件的data區段,因為這個區段在生成的可執行文件中,因此是“靜态的”;
3、堆區:堆區是最複雜的,有操作系統負責堆管理,但是當用C語言編譯器生成一個可執行文件并且運行時,它會默認建立一些堆。