C語言中的記憶體分配

2021-09-27 22:10:03 字數 360 閱讀 6140

1、**段(text)

裡面儲存的是可執行程式的二進位制指令,為了防止被意外修改,**段一般是唯讀的

2、全域性段(資料段data)

儲存被初始化過的全域性變數、靜態變數

3、bss段(靜態資料段)

儲存靜態變數(被static修飾過的變數)和末初始化的全域性變數,這段內存在程式執行前會被初始化為0

4、堆(heap)

程式設計師手動管理,與指標配合使用,足夠大,釋放時間受控制,但不安全,容易產生記憶體碎片、記憶體洩漏

5、棧(stack)

儲存普通的區域性變數塊變數,為函式的呼叫提供支援(函式呼叫結束後自動釋放)

6、命令列引數及環境變數表

命令列引數、環境變數

C語言中記憶體分配

一 static在c語言裡面可以用來修飾變數,也可以用來修飾函式。1 先看用來修飾變數的時候。變數在c語言裡面可分為存在全域性資料區 棧和堆裡。其實我們平時所說的堆疊是棧而不是堆,不要弄混。例如 在file.c中 int a int main int b int c int malloc sizeo...

C語言中記憶體分配問題

推薦 c語言中記憶體分配 linux size命令和c程式的儲存空間布局 本大神感覺,上面的鏈結的內容,已經很好的說明了 對於乙個可執行檔案,在linux下可以使用 size命令列出目標檔案各部分佔的位元組數 分為 text段 data段與bss段 參考 linux size命令和c程式的儲存空間布...

C語言中關於記憶體的分配

在編寫c語言程式時,我們的記憶體儲存在4塊區域,分別為棧 stack 堆 heap 資料區 data和.bss區域 常量區 唯讀 棧 棧區域中存放的是區域性變數,函式定義的形參,和auto修飾的自動變數。特點 1 棧空間是os 作業系統 自動分配和 程式設計師不用去管 2 棧空間可以被反覆使用 3 ...